#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, и если это работает, то, возможно, вы получаете ошибки откуда-то еще. можете ли вы также добавить ошибку из журнала, которую вы получаете в своем вопросе