轉換錯誤 - 無法將值'NaN”(類型為數字)轉換為數字,發生在路徑'totalOrders”處
P粉493534105
P粉493534105 2023-09-08 17:39:12
0
1
542

我為我的專案建立了一個API,但在一個端點上出現了一個錯誤,我無法修復。

const fullOrdersForService = service.totalOrders
const updatedFullOrdersForService = fullOrdersForService + 1
const updateService = await Service.findOneAndUpdate({_id:serviceId}, { totalOrders: updatedFullOrdersForService },{new:true})

絕對在上面的程式碼中,我檢查了service.totalOrders的類型,輸出為數字,而且service.totalOrders來自一個模式,所以沒有任何可能將其類型更改為字串或NaN。我檢查了它是否為NaN,結果也為false,它不是NaN。我仍然想知道這個錯誤是如何發生的。 但是出現了以下錯誤。

messageFormat: undefined,
stringValue: '"NaN"',
kind: 'Number',
value: NaN,
path: 'totalOrders',
reason: AssertionError [ERR_ASSERTION]: The expression evaluated to a falsy value:
assert.ok(!isNaN(val))

我的Service.totalOrders的模式可以在下面看到。

totalOrders:{
  type:Number,
  required:true,
  default:0
}

我的Seller.totalOrders的模式可以在下面看到。

totalOrders:{
  type:Number,
  required:true,
  default:0
}
const fullOrdersForService = service.totalOrders  
const updatedFullOrdersForService = fullOrdersForService + 1 
const updateService = await Service.findOneAndUpdate({_id:serviceId}, { totalOrders: updatedFullOrdersForService },{new:true})

我剛剛嘗試了這段程式碼,出現了我上面提到的錯誤。

P粉493534105
P粉493534105

全部回覆(1)
P粉608647033

首先使用console.log(fullOrdersForService )console.log(updatedFullOrdersForService )來檢查它是數字還是字串

如果updatedFullOrdersForService是正確的但是是字串,在更新之前使用parseInt(updatedFullOrdersForService )

#
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板