【问题标题】:It says items is undefined它说项目未定义
【发布时间】:2020-08-24 01:25:42
【问题描述】:

代码如下所示。

const mongoose = require('mongoose');

const Schema = mongoose.Schema;

const user = new Schema({
    name: {
        type: String,
        required: true
    },
    email: {
        type: String,
        required: true
    },
    password: {
        type: String,
        required: true
    },
    resetToken: String,
    resetExpiration: String,
    products: [{type: mongoose.Types.ObjectId, required: true, ref: 'Shop'}],
    cart: {
        items: [
            {
                productId: {type: mongoose.Types.ObjectId, ref: 'Shop', required: true},
                quantity: {type: Number, required: true},
            }
        ]
    },
});

user.methods.addToCart = (product) => {

    const itemIndex = this.cart.items.findIndex(prod => {
        return prod.productId.toString() === product._id.toString();
    });

    let newQuantity = 1;
    const updatedCartItems = [...this.cart.items];

    if(itemIndex >= 0) {
        newQuantity = this.cart.items[itemIndex].quantity + 1;
        updatedCartItems[itemIndex].quantity = newQuantity;
    } else {
        updatedCartItems.push({
            productId: product,
            quantity: newQuantity
        });
    }

    const updatedCart = {
        items: updatedCartItems
    }
    this.cart = updatedCart;
    return this.save();
}

const model = mongoose.model('User', user);

module.exports = model;

我正在尝试按照上述架构将产品存储在购物车实例方法中,但是当我将产品从我的控制器发送到 addToCart 时,它说项目在 this.cart.items 上未定义。我没有在猫鼬中使用太多实例方法,所以我不知道这个问题是模式问题还是一般问题。

如果您需要任何其他信息,请告诉我。

【问题讨论】:

    标签: node.js mongodb express mongoose mongoose-schema


    【解决方案1】:

    这是一个愚蠢的错误,实际上我正在使用箭头功能。所以它没有绑定到架构。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-02-24
      • 2022-12-19
      • 1970-01-01
      • 2018-05-02
      • 1970-01-01
      • 1970-01-01
      • 2022-01-21
      相关资源
      最近更新 更多