【发布时间】:2019-02-27 16:07:30
【问题描述】:
基本上我有一个这样的异步函数:
export default (htmlFilePath, observer, redisClient) => async (req, res, next) => {
try {
...bunch of logic...
} catch (error) {
// if i log error here it displays correctly
next(error)
}
}
因此,如果代码遇到上面的问题,我可以正确使用 stackTrace 等错误,但是当使用 next() 传递它以转到此快速函数时,错误会丢失在某处...:
.get('/*', loader(filePath, observer, redisClient))
.use(function (err, req, res, next) {
res.statusCode = 500;
// Logger only logs: TEST
logger.error('TEST', err, err.stack);
res.send("Internal Server Error");
})
有人知道我做错了什么吗?我想利用上面函数中的错误。
【问题讨论】:
-
您有多个错误处理程序吗?意思是,签名为
function (err, req, res, next) {}的函数不止一个。loader函数长什么样子? -
loader 是我在帖子中写的第一个异步函数。