我在nodeJS中使用异步,在我的最终回调中,我正在处理错误,并尝试将其发送回我的角度控制器。
function (err, data) {
if (err) {
console.log(err);
res.status(500).send({ err : err});
}
else {
res.json({data: data});
}
});
现在控制台中的错误是。
[Error: Username is already in use]
我无法在我的角度控制器中收到此特定错误,我尝试以所有组合(例如)发送错误。
res.status(500).send({ err : err[0]});
res.status(500).send({ err : err.Error});
这就是我的前端。
Object {data: Object, status: 500, config: Object, statusText: "Internal Server Error"}
config
:
Object
data
:
Object
err
:
Object
__proto__
:
Object
__proto__
:
Object
headers
:
(d)
status
:
500
statusText
:
"Internal Server Error"
我该如何将使用中的用户名错误带到我的前端。
500
错误通常是为服务器错误保留的,而不是为您所描述的情况保留的。服务器错误应由您的服务器处理,并优雅地呈现在前端。客户端错误应该在400秒钟之内。您为什么不尝试a409
或a 400
:
res.status(409).json({error: "Username already exists");
查看HTTP状态代码以了解更多信息:
409冲突由于与资源的当前状态冲突,请求无法完成。仅在预期用户可能能够解决冲突并重新提交请求的情况下才允许使用此代码。响应主体应包含足够的信息,以使用户能够识别冲突的根源。理想情况下,响应实体应包括足够的信息以供用户或用户代理解决问题。但是,这可能是不可能的,也不是必需的。
响应PUT请求最有可能发生冲突。例如,如果正在使用版本控制,并且正在PUT的实体包括对资源的更改,该更改与先前的(第三方)请求所进行的更改冲突,则服务器可能使用409响应来指示它无法完成该请求。 。在这种情况下,响应实体可能会以响应Content-Type定义的格式包含两个版本之间差异的列表。
注:另外,作为一个很好的做法,一定要回到你的res.
功能,控制预测的流动,就像这样:
return res.status(409).json({error: "Username already exists");
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句