首页 > 解决方案 > 尝试将其属性之一分配给新变量时,用户对象返回未定义

问题描述

我正在尝试使用此代码创建一个简单的订单,然后在尝试将 user.shoppingCart 数组分配给一个新变量(“产品”)时,它说用户未定义,但例如地址工作正常,然后尝试到 console.log 的 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,
    });
  }
};

标签: javascriptnode.jsdatabasemongoosepostman

解决方案


推荐阅读