Node Azure Web App 中的自定义错误消息
Custom Error Messages in Node Azure Web App
在 Azure Web 应用 运行 节点和 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 对象。
解决方法!
在您的 web.config
文件中,在 <system.webServer> ... </system.webServer>
:
之间添加这一行
<httpErrors existingResponse="PassThrough" />
希望没有其他人像我一样遇到这个问题。我确定这是不正确的谷歌搜索和对 IIS 缺乏经验的混合,但我从未真正在网上找到答案,我偶然发现了一些链接,这些链接将我带到了 IIS error handling page.
希望这对其他人有帮助!如果您是 运行 IIS 网络应用程序,该文档中有大量有用的信息,我强烈建议通读它。
在 Azure Web 应用 运行 节点和 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 对象。
解决方法!
在您的 web.config
文件中,在 <system.webServer> ... </system.webServer>
:
<httpErrors existingResponse="PassThrough" />
希望没有其他人像我一样遇到这个问题。我确定这是不正确的谷歌搜索和对 IIS 缺乏经验的混合,但我从未真正在网上找到答案,我偶然发现了一些链接,这些链接将我带到了 IIS error handling page.
希望这对其他人有帮助!如果您是 运行 IIS 网络应用程序,该文档中有大量有用的信息,我强烈建议通读它。