Ich habe eine API für mein Projekt erstellt, aber auf einem der Endpunkte ist ein Fehler aufgetreten, den ich nicht beheben kann.
const fullOrdersForService = service.totalOrders const updatedFullOrdersForService = fullOrdersForService + 1 const updateService = await Service.findOneAndUpdate({_id:serviceId}, { totalOrders: updatedFullOrdersForService },{new:true})
Absolut im obigen Code habe ich überprüft, dass service.totalOrders
的类型,输出为数字,而且service.totalOrders
von einem Muster stammt, sodass es keine Möglichkeit gibt, seinen Typ in String oder NaN zu ändern. Ich habe überprüft, ob es NaN ist und das Ergebnis ist auch falsch, es ist nicht NaN. Ich frage mich immer noch, wie dieser Fehler auftritt.
Aber der folgende Fehler ist aufgetreten.
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))
Mein Service.totalOrders
Muster ist unten zu sehen.
totalOrders:{ type:Number, required:true, default:0 }
Mein Seller.totalOrders
Muster ist unten zu sehen.
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})
Ich habe gerade diesen Code ausprobiert und den oben erwähnten Fehler erhalten.
首先使用
console.log(fullOrdersForService )
和console.log(updatedFullOrdersForService )
来检查它是数字还是字符串如果updatedFullOrdersForService是正确的但是是字符串,在更新之前使用
parseInt(updatedFullOrdersForService )