[英]Mapping array inside async function causes error
您好,我在異步函數(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:我在發送服務器之前對數組進行了字符串化,然后進行了解析
編輯:一切正常且成分或數量不為空時,它不會導致錯誤
發生此問題的原因是多次調用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: ''
})
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.