簡體   English   中英

異步函數內部的映射數組導致錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM