我有一个使用azure移动服务运行的快速应用程序 错误中间件
// production error handler
app.use(function(err, req, res, next) {
res.status(err.status || 500);
res.render('error', {
message: err.message,
error: {}
});
ptlogger.error(err.message);
});
问题是在查询结果的回调中没有调用此代码段,例如。
router.get('/id/:subscriberid', (req, res, next) => {
var mssqlObject = req.azureMobile.data;
var query = { sql: strSql };
mssqlObject.execute(query).then( (results) => {
console.log(unDeclaredVariable); // should hit the error handler here
});
});
如果它位于异步mssqlObject异步调用之外,它会击中中间件
注意:我不想使用.catch块因为我有多个其他场景,我想一劳永逸地解决这个问题。
提前致谢。
答案 0 :(得分:1)
这不是Azure移动应用程序的问题 - 它更像是一个Node.js问题。
将以下内容添加到您的代码中:
.catch((error) => {
console.log(error);
throw error;
});
通过这种方式,您可以在本地捕获错误,但也可以在全局级别捕获错误。