Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何解决这个问题;错误:一旦符合,就无法覆盖模型";?_Javascript_Node.js_Express - Fatal编程技术网

Javascript 如何解决这个问题;错误:一旦符合,就无法覆盖模型";?

Javascript 如何解决这个问题;错误:一旦符合,就无法覆盖模型";?,javascript,node.js,express,Javascript,Node.js,Express,我是node js的初学者,我提出了一些问题,但我无法解决 这是我的模型product.js,我在其中定义了产品模式,并在其中添加了一些变量 还有财产 const mongoose =require("mongoose"); const {ObjectId} = mongoose.Schema; const productSchema = new mongoose.Schema({ name:{ type:String, trim:true, req

我是node js的初学者,我提出了一些问题,但我无法解决
这是我的模型product.js,我在其中定义了产品模式,并在其中添加了一些变量 还有财产

const mongoose =require("mongoose");
const {ObjectId} = mongoose.Schema;

const productSchema = new mongoose.Schema({
name:{
    type:String,
    trim:true,
    required:true,
    maxlength:32,
},
description:{
    type:String,
    trim:true,
    required:true,
    maxlength:2000
},
price:{
    type:Number,
    required:true,
    maxlength:32,
    trim:true,
},
category:{
    type:ObjectId,
    ref:"Category",
    required:true
},
stock:{
    type:Number
},
sold:{
    type:Number,
    default:0
  },
  photo:{
    data: Buffer,
    contentType: String
  }
 },{timestamps:true});

 module.exports = mongoose.model("Product", productSchema);  
这里是我的controller product.js,我在为产品定义模型时遇到了这个错误 模型

控制台错误如下所示
[1] :

错误可能在于检索objectId类型的方式。试着这样做:

category: {
    type: mongoose.Schema.Types.ObjectId,
    ref: "category",
    required: true,                   
}

您遇到的问题是,您正在尝试两次定义模式

不要将图片保存在数据库中,将其放入远程cdn并将url保存在数据库中,否则您将付出大量代价$$
category: {
    type: mongoose.Schema.Types.ObjectId,
    ref: "category",
    required: true,                   
}