我想从 api 文件夹中捕获错误。
但是,除非使用标准快速路由声明的任何处理程序触发错误,否则快速错误处理中间件不会捕获任何内容app.get(someroute,handler)
对此有何建议?
提前致谢。
app.js
mobile.api.import('./api');
mobile.tables.initialize()
.then(function () {
app.use(mobile); // Register the Azure Mobile Apps middleware
app.listen(process.env.PORT || 3000); // Listen for requests
})
.then(function(){
if (process.env.NODE_ENV == 'production'){
///handle errors on prod
app.use(function(err, req, res, next) {
console.log('error catch - here');
res.statusCode = 500;
res.end();
});
}
});
API / testing.js
module.exports = {
"get": function (req, res, next) {
throw new Error('this is error');
}
};
答案 0 :(得分:0)
您的理解是正确的。 Azure Mobile Apps的Node.js SDK使用Express,因此它使用相同的语义。 (旁注 - 我们简要讨论过没有实现自定义API工具。它确实支持Azure门户的门户内编辑功能。)
一个更好的问题(一个不是针对这个论坛,这是关于回答编程问题)是你想要发生什么?在https://github.com/Azure/azure-mobile-apps-node存储库上提交一个问题,以便我们进行讨论。
答案 1 :(得分:0)
尝试在mobile.use(function (err, req, res, next) { /* ... */ })
之后添加mobile.api.import
。这将在azure-mobile-apps错误处理程序之前安装错误处理中间件。