我為我的專案建立了一個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})
我剛剛嘗試了這段程式碼,出現了我上面提到的錯誤。
首先使用
console.log(fullOrdersForService )
和console.log(updatedFullOrdersForService )
來檢查它是數字還是字串如果updatedFullOrdersForService是正確的但是是字串,在更新之前使用
#parseInt(updatedFullOrdersForService )