azure-mobile-apps-node中的错误中间件

时间:2017-04-21 03:24:04

标签: javascript node.js azure error-handling azure-mobile-services

我想从 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');
    }
};

2 个答案:

答案 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错误处理程序之前安装错误处理中间件。