繁体   English   中英

无法在猫鼬中找到参考模型属性

[英]Not able to find reference model property in mongoose

我有两个模型和两个路由文件。 但是对象内的一个属性没有返回任何内容。

 // orders.js route const mongoose = require('mongoose'); const Order = require('../models/order'); orderRouter.route('/') .post((req, res, next) => { const order = new Order({ _id: mongoose.Types.ObjectId(), quantity: req.body.quantity, product: req.body.productId }); order .save() .then(result => { res.status(201).json(result); }) .catch(err => { res.status(500).json({ error: err }); }); }); // order.js Model const mongoose = require('mongoose'); const orderSchema = mongoose.Schema({ _id: mongoose.Schema.Types.ObjectId, // without required: true working but not returning anything product: { type: mongoose.Schema.Types.ObjectId, ref:'Product', required: true}, quantity:{ type: Number, default:1 } }); module.exports = mongoose.model('Order', orderSchema);

 // product.js model const mongoose = require('mongoose'); const productSchema = mongoose.Schema({ _id: mongoose.Schema.Types.ObjectId, name: { type:String, required:true}, price: { type: Number, required: true} }); module.exports = mongoose.model('Product', productSchema); // products.js route const mongoose = require("mongoose"); const Product = require("../models/product"); productRouter .route("/") .get((req, res, next) => { Product.find() // SELECT SPECIFIC FIELDS TO DISPLAY .select('name price _id') .exec() .then(docs => { const response = { // To display item conts count: docs.length, // To display array of selected items products: docs.map(doc => { return { name: doc.name, price: doc.price, _id: doc._id, request: { type: 'GET', url: 'http://localhost:3000/products/' + doc._id } } }) }; res.status(200).json(response) }) .catch(err => { res.status(500).json({ error: err }) }) }) .post((req, res, next) => { const product = new Product({ _id: new mongoose.Types.ObjectId(), name: req.body.name, price: req.body.price }); product .save() .then(result => { console.log(result); res.status(200).json({ message: "Created Product successfully", createdProduct: { name: result.name, price: result.price, _id: result._id, request: { type: 'GET', url: 'http://localhost:3000/products/' + result._id } } }); }) .catch(err => { console.log(err); res.status(500).json({ error: err }); }); });

如果我在订单模型中插入 required: true 那么我会收到这样的错误。 Path product is required. name": "ValidatorError" Path product is required. name": "ValidatorError" 。我不知道我在这里做错了什么。没有在模型中进行验证。我可以发布并获取 ID、数量,但产品没有运气。

你的 POST 是什么样的?

` POST http://localhost:8000/orders内容类型:application/json

{ "productId": "5e8b7ab88466300b9c720e68", "quantity": "10" } `

您的 POST 请求中应该有“productId”和“quantity”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM