【发布时间】:2016-06-10 06:28:03
【问题描述】:
我在 Node.js 中发现了数组的奇怪行为
谷歌搜索没有帮助。 Ofc,这可能会导致我的疲劳。如果是这样,我很抱歉。
那么,我的模型
var UserSchema = new mongoose.Schema({
id: mongoose.Schema.ObjectId,
added: {
type: Date,
default: Date.now()
},
displayName: String,
cart: [{
orderNumber: mongoose.Schema.ObjectId,
exposition: Object,
offer: Object,
state: Number,//1 - Unpaid
}],
});
在控制器中我试图循环遍历购物车数组
var cartId = new ObjectId(req.body.id);
mongoose.model('User').findById(currentUser.userId, function (err, user) {
var cart = user.cart;
console.log(cart);
var expId = -1;
if (cart) {
for (var i = 0; i < cart.length; i++) {
var cartItem = cart[i];
console.log(cartItem);
if (cartItem._id === cartId) {
console.log("SHIT");
expId = user.cart.exposition._id;
break;
}
}
}
});
我没有找到比循环更好的在用户中查找嵌入式购物车的解决方案。 所以,当我记录我的购物车对象时
console.log(cart);
我得到了正确的对象,它工作正常,但是当我尝试登录时
console.log(cartItem);
console.log(cart[0]);
我只得到
[object Object]
[object Object]
我做错了什么?
【问题讨论】:
-
JSON.stringify 在控制台记录之前你的对象。然后您应该会看到该对象的字符串表示形式。
标签: javascript arrays node.js mongoose