#node.js #mongoose
#node.js #мангуст
Вопрос:
Я пытаюсь обновить значение моей пользовательской модели с помощью $inc, но когда я делаю это, я получаю следующую ошибку:
There was an errorCastError: Cast to Number failed for value "NaN" at path "paymentDue"
Вот что я делаю
User.findOneAndUpdate(
{ _id: req.body.userID },
{
$push: { orders: req.body.orderID },
$inc: { paymentDue: order.quantity * req.body.price },
},
(error) => {
if (!error) {
res.redirect("/admin/orders");
} else {
res.send("There was an error" error);
}
}
);
Комментарии:
1. Кажется
order.quantity * req.body.price
, так оно и естьNaN
. Вы проверили значенияorder.quantity
иreq.body.price
? Скорее всего, один из них так и естьundefined
.
Ответ №1:
Сначала убедитесь, что вы установили значение paymentValue
поля по умолчанию 0
равным . Если оно уже установлено, либо order.quantity
или req.body.price
undefined
. Если вы умножите число на undefined
результат, будет NaN
. Вам необходимо проверить эти значения.