Ошибка приведения к номеру для значения «NaN» на пути «оплата» в Mongoose

#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 . Вам необходимо проверить эти значения.