Azure 移动服务上的节点域

Node domains on Azure Mobile Services

我似乎无法让域在 Azure 移动服务 (ZUMO) 上运行。例如:

var myDomain = require('domain').create();
myDomain.on('error', function ()
{
    console.log('got here');
});

myDomain.run(function() {
    boo(); //throws
});

永远不会调用我域的错误处理程序。 ZUMO 将捕获此异常,并且他们的 500 错误将得到 returned。我更愿意自己捕获异常,记录它,然后使用我喜欢的 JSON 格式 return 500。我意识到 ZUMO 正在执行一些全局错误捕获,但我认为如果我有一个域,它应该在它冒泡到 ZUMO 包装器之前捕获它。有什么建议吗?

(ZUMO 在节点 0.8.28 上运行)

您列出的代码将处理未捕获 异常。移动服务脚本和底层异步数据操作被包装在 try..catch 块中,因此它们不会调用域错误处理程序。

您应该使用正常的错误处理实践来处理脚本中的错误,即 try..catch 块或承诺的错误处理回调。然后,您可以使用 res.send.

return 适当的响应