Я хотел бы улучшить перехватчик в моем приложении LoopBack4, которое в настоящее время просто выводит мне начало и конец вызова метода контроллера в командной строке, как описано здесь: https://loopback.io/doc/en/lb4/Interceptors.html
Мой журнал-перехватчик выглядит так:
export const Log: Interceptor = async (invocationCtx, next) => {
// Wait until the interceptor/method chain returns
const req = await invocationCtx.get(RestBindings.Http.REQUEST);
try
{
const stackinfo = 'Class: ' + invocationCtx.targetClass.name + ' | Method: ' + invocationCtx.methodName + " | Request IPs: " + req.ips.concat(', ');
logger.trace('Starting - ' + stackinfo);
const result = await next();
const res = await invocationCtx.get(RestBindings.Http.RESPONSE);
logger.trace('Ending - ' + stackinfo + ' | Response Status Code: ' + res.statusCode);
return result;
}
catch (e)
{
logger.error(e);
throw e;
}
};
Теперь я хотел бы улучшить этот перехватчик, чтобы он также регистрировал некоторые статистические данные в моем источнике данных MySQL. Моя проблема в том, как я могу получить доступ к хранилищу внутри перехватчика? Нужно ли мне вводить репозиторий, и если да, то как мне это делать? Или есть лучший способ добиться этого?