我们需要从一个日志处理程序直接,这个处理程序是从一个路由调用的,我尝试了很多方法,这是最新的,更有意义,但似乎仍然不工作。我想无论如何,如果它被调用,这个直接总是发生。
router.get('/AccessDenied', utils.CheckAuthenticated, function(req,res) {
try {
let ContentTitle = "Abcd1234"
} catch (error) {
CustomErrorLog(error, metadata)
}
})
自定义错误日志函数为:
const logger = require("../services/logger")
const uuid = require("uuid");
module.exports = {
CustomErrorLog: (error, metadata) => {
return (req, res, next) => {
let correlationId = uuid.v4()
metadata["correlation_id"] = correlationId;
logger.error(error, metadata);
res.redirect('/error/' + errorId)
}
}
}
我尝试了许多不同的方法,似乎都不起作用。任何帮助都很感激。
1条答案
按热度按时间qoefvg9y1#
看起来您正尝试将CustomErrorLog函数用作中间件函数,但没有为此正确设置。中间件函数使用三个参数调用:req、res和next。您的CustomErrorLog函数缺少next参数,并且也不返回中间件函数。
要解决此问题,您可以更新CustomErrorLog函数以接受三个参数并返回中间件函数:
然后,您可以将CustomErrorLog函数用作路由中的中间件,如下所示:
这将确保使用正确的参数调用CustomErrorLog函数,并确保它的行为与中间件函数相同。