我发现了一个与在Azure Web应用程序上运行Node和IIS相关的有趣问题,并想分享一下,因为我找不到相关信息。
问题:
我的生产应用程序上的自定义错误消息无法传递到客户端,但本地运行却没有问题。
以下是一个快速示例:
app.post('/user', function(req, res, next) {
// Parse out the user data
// ...
// Oh no! An error!
if (invalidData) {
return res.status(400).json({error: 'Invalid username, must be at least 4 characters.'});
}
// ...
});
这个问题通过我的Web应用程序以标准的“400:错误请求...”消息传递,而不是我的自定义错误消息。 在客户端,我试图执行JSON.parse(err.responseText).error
,但它没有起作用,因为err.responseText
是"Bad request..."
字符串,而不是我的JSON对象。