尝试填充猫鼬,它不起作用(nodejs)

时间:2019-08-20 14:29:24

标签: javascript node.js mongoose

i使具有产品和用户身份验证的迷你购物车完美运行,但是Evereting可以使用户尝试从用户那里拿走所有产品并在特定页面中查看它们,这对我不起作用。 它返回用户但不返回产品。

UserSchema

const mongoose = require("mongoose");
const Schema = mongoose.Schema;

const UserSchema = new Schema({
  product: {
    type: [mongoose.Schema.Types.ObjectId],
    ref: "product"
  },
  name: {
    type: String,
    required: true
  },
  email: {
    type: String,
    required: true,
    unique: true
  },
  address: {
    type: String,
    required: true
  },
  password: {
    type: String,
    required: true
  },
  data: {
    type: Date,
    default: Date.now
  }
});

module.exports = User = mongoose.model("user", UserSchema);

ProductScheama

const mongoose=require('mongoose');

const ProductSchema = new mongoose.Schema({
    name:{
        type:String,
        required:true,
        unique:true
    },
    description:{
        type:String,
    },
    price:{
        type:Number,
        required:true
    },
    quantity:{
        type:Number,
        required:true
    },
    data:{
        type:Date,
        default:Date.now
    }
})

module.exports=Product=mongoose.model('product',ProductSchema)

我正在尝试创建一个函数,该函数可以为我提供产品的名称,价格和说明,但失败了。 我的路由器:

router.get("/products/:id", auth, async (req, res) => {
  try {
    let pro = await User.find({ product: req.params.id }).populate("product", [
      "name",
      "price",
      "description"
    ]);
    if (!pro) {
      return res.json({ msg: "This user not have products to show" });
    }
    res.json(pro);
  } catch (err) {
    console.error(err.message);
    res.status(500).send("Server errors");
  }
});

邮递员的结果

[
    {
        "product": [],
        "_id": "5d5bfb96963ca600ec412bca",
        "name": "Anonny Annon",
        "email": "Annony@gmail.com",
        "address": "Israel",
        "password": "$2a$10$gESTIaBVifzhRDR2zOKsw.Q79gCT07IK2VnDoyT2oU5htqfBuAj8W",
        "data": "2019-08-20T13:54:30.267Z",
        "__v": 0
    }
]

1 个答案:

答案 0 :(得分:0)

我认为product应该这样定义:

product: [{
    type: mongoose.Schema.Types.ObjectId,
    ref: "product"
}]

代替type: [mongoose.Schema.Types.ObjectId]

找到解决办法here

相关问题