用于azure移动应用异步操作的错误中间件

时间:2016-12-15 05:43:26

标签: node.js azure asynchronous azure-mobile-services

我有一个使用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块因为我有多个其他场景,我想一劳永逸地解决这个问题。

提前致谢。

1 个答案:

答案 0 :(得分:1)

这不是Azure移动应用程序的问题 - 它更像是一个Node.js问题。

将以下内容添加到您的代码中:

.catch((error) => {
    console.log(error);
    throw error;
});

通过这种方式,您可以在本地捕获错误,但也可以在全局级别捕获错误。