您好,我的异步函数 (router.post()) 中有对象验证数组,我需要在验证之前对其进行映射,这就是我的方法ingredients.map(({ingredient,quantity})=>{ if(ingredient.trim().length < 1 || quantity.length < 1){ return res.status(409).send({ message: '' }) }})在此之后,我将 200 状态代码发送到客户端(ReactJS),但它会导致错误发送后无法设置标头我不知道这有什么问题。在这个代码块之前,我只有 if 语句来验证其他输入,当我注释这个代码块时,if 语句起作用了。那么这有什么问题呢?PS:我在发送服务器之前将数组字符串化,然后当然解析编辑:当一切正常且成分或数量不为空时,它不会导致错误
1 回答
![?](http://img1.sycdn.imooc.com/533e4d470001a00a02000200-100-100.jpg)
红糖糍粑
TA贡献1815条经验 获得超6个赞
出现此问题是因为res.send被多次调用。
如果您打算409在至少一种成分无效的情况下使用状态代码进行响应,您可以检查是否至少存在一种无效项目,如果存在则使用状态代码进行响应409:
const hasInvalidIngredient = ingredients.some(
({ingredient,quantity}) => ingredient.trim().length == 0 || quantity.length == 0
)
if (hasInvalidIngredient) {
return res.status(409).send({
message: ''
})
}
添加回答
举报
0/150
提交
取消