2015-08-28 107 views
0

我似乎无法让域在Azure移动服务(ZUMO)上工作。例如:Azure移动服务上的节点域

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

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

我的域的错误处理程序永远不会被调用。这个异常将被ZUMO捕获,并且他们的500错误将被返回。我宁愿自己陷入异常,记录它,然后使用我的首选JSON格式返回500。我意识到ZUMO正在做一些全局错误陷阱,但我会认为如果我有一个域,它应该在它冒泡到ZUMO包装之前捕获它。有什么建议么?

(谟运行在节点0.8.28)

+0

是不是有一个myDomain.error函数? – Fares

+0

否。域类没有错误功能。不确定这个评论意味着什么。 – Joel

回答

2

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

您应该使用常规的错误处理实践来处理脚本中的错误,例如try..catch块或错误处理回调的promise。然后您可以使用res.send返回适当的响应。

+0

啊。我认为他们正在使用我应该取代的域名处理程序。这现在有道理。 – Joel