Пользовательский объект возвращается неопределенным при попытке присвоить один из его атрибутов новой переменной

#javascript #node.js #database #mongoose #postman

Вопрос:

Я пробую этот код для создания простого заказа, а затем при попытке назначить массив user.ShoppingCart новой переменной («продукты») в нем говорится, что пользователь не определен, но, например, адрес работает нормально, а затем пытается выполнить консоль.войдите в систему user.address и user.ShoppingCart, на самом деле он печатает правильные значения. Есть какие-нибудь идеи?

 exports.createOrder = async (req, res) => {
  try {
    const user = await User.findById(req.user.id);

    if (user.shoppingCart.length < 1) {
      return res.status(400).json({
        status: 'fail',
        message: 'Please first add a product to your shopping cart.',
      });
    }
    const address = req.body.address || user.address;
    const products = user.shoppingCart;
    const total = await getTotal();
    const { paymentMethod } = req.body;

    const order = await Order.create({
      address,
      user: user._id,
      products,
      total,
      paymentMethod,
    });

    res.status(201).json({
      status: 'success',
      data: {
        order,
      },
    });
  } catch (err) {
    res.status(500).json({
      status: 'fail',
      message: err.message,
    });
  }
};
 

Комментарии:

1. Является ли req.пользователь из другого промежуточного программного обеспечения?

2. да, это так, но он возвращает весь пользовательский объект по назначению, проблема в том, что при попытке установить ShoppingCart в другую переменную

3. пользовательская переменная выглядит хорошо для меня, если предположить, что вы получаете пользователя каждый раз. вы уже получаете доступ к user.ShoppingCart в состоянии if, и если это работает, то, возможно, вы получаете ошибки откуда-то еще. можете ли вы также добавить ошибку из журнала, которую вы получаете в своем вопросе