ExpressJS:自定义错误模块无法识别此错误

时间:2017-11-20 07:48:17

标签: node.js azure express iisnode

我正在运行Express.JS后端,如果用户尝试使用已经在使用的电子邮件注册,则将其设置为返回带有自定义消息的422错误,如下所示:

const existingUser = await User.findOne({ email: email });
    if (existingUser) {
        return res.status(422).send({ error: 'Email is already in use' });
    }

然而,我在前端看到的反应是:

"response":{"data":"The custom error module does not recognize this error.","status":422,"statusText":"Unprocessable Entity"

显然,某些事情正在改变前往前端的错误。

我现在正在本地运行这个以进行开发,但是生产部署到Azure,所以我有一个Web.config文件和一个iisnode.yml文件。我已将此代码添加到前者,以确保它不会导致问题:

<system.webServer>
  <httpErrors existingResponse="PassThrough">
  </httpErrors>
</system.webServer>

如何对此事进行故障排除?

2 个答案:

答案 0 :(得分:1)

不确定,但以下情况应该有效。

return res.status(422).send('Email is already in use');

答案 1 :(得分:1)

在设置<httpErrors>之后,它对我有用:

enter image description here

浏览器输出:

enter image description here