ExpressJS:自定义错误模块不能识别此错误

我正在运行一个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> 

我如何去解决这个问题?

不知道,但下面应该工作。

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

它设置<httpErrors>如下所示后为我工作:

在这里输入图像说明

浏览器输出:

在这里输入图像说明