【发布时间】:2019-07-25 23:50:29
【问题描述】:
您好,我的异步函数 (router.post()) 中有一组对象验证,我需要在验证之前对其进行映射,这就是我的做法
ingredients.map(({ingredient,quantity})=>{
if(ingredient.trim().length < 1 || quantity.length < 1){
return res.status(409).send({
message: ''
})
}
})
在此之后我向客户端(ReactJS)发送 200 状态代码,但它会导致错误
发送后无法设置标题
我不知道这是什么问题。
在此代码块之前,我只有 if 语句来验证其他输入,当我评论此代码块时,if 语句有效。那么这有什么问题呢?
P.S:我在发送服务器之前对数组进行了字符串化,然后当然会解析
编辑:当一切正常且成分或数量不为空时,它不会导致错误
【问题讨论】:
-
好吧,不要循环调用
res.status()或res.send()。只发送一次响应。您想在响应消息中放入什么数据? -
好吧,但是只有 res.send() 很快就会被弃用,然后呢?
-
快递 5x 将不再被接受
-
当然你应该同时使用
status和send,但是你应该一个都不要在一个循环中使用。 -
检查你的
ingredients数组是否有任何错误(例如使用every,而不是map)。然后,当数据中有一个(或多个)错误时,发送您的 409 响应。否则,如果没有错误,请发送您的其他回复。
标签: javascript arrays node.js express dictionary