我写了一个资源,用户可以向其发送数据。如果数据无效(验证返回RecyclerView
),我需要向客户端发送错误500状态代码,但问题是,当我使用false
时,程序退出
而且我只想取消此请求但对客户端有错误,而不是停止程序...
res.status(500)
答案 0 :(得分:1)
请注意,执行res.status(500).send({ error: 'invalid!' })
不会终止当前功能。
所以->
function formHandler(req, res, next) {
let isValid = validate(fields.token)
if (!isValid) {
res.status(500).send({ error: 'invalid!' })
}
//so the code below will even run in invalid state
res.send("this piece of code will run no matter what");
您可以调用return或使用else块。例如。
function formHandler(req, res, next) {
let isValid = validate(fields.token)
if (!isValid) {
res.status(500).send({ error: 'invalid!' });
return;
}
res.send("this piece of code will only run if isValid");
再次执行第二次res.send
很可能会给您带来错误,因为第一个res.send
将关闭连接。