猿问

异步函数内的映射数组导致错误

您好,我的异步函数 (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:我在发送服务器之前将数组字符串化,然后当然解析


编辑:当一切正常且成分或数量不为空时,它不会导致错误


温温酱
浏览 134回答 1
1回答

红糖糍粑

出现此问题是因为res.send被多次调用。如果您打算409在至少一种成分无效的情况下使用状态代码进行响应,您可以检查是否至少存在一种无效项目,如果存在则使用状态代码进行响应409:const hasInvalidIngredient = ingredients.some(&nbsp; ({ingredient,quantity}) => ingredient.trim().length == 0 || quantity.length == 0)if (hasInvalidIngredient) {&nbsp; return res.status(409).send({&nbsp; &nbsp; message: ''&nbsp; })}
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答