wake-up-neo.com

mongoose TypeError: Schema ist kein Konstruktor

Ich bin auf eine seltsame Sache gestoßen. Ich habe mehrere Mungo-Modelle - und bei einem davon (nur bei einem!) Bekomme ich diesen Fehler:

TypeError: Schema is not a constructor

Ich finde es sehr seltsam, da ich mehrere Arbeitsschemas habe. Ich habe versucht, mongoose.Schema im nicht funktionierenden Schema zu protokollieren, und es unterscheidet sich tatsächlich vom mongoose.Schema in meinen Arbeitsschemas. Der Code ist fast identisch ..__ Hier ist der Code für das nicht funktionierende Schema:

var mongoose = require('mongoose');
var Schema = mongoose.Schema;

var errSchema = new Schema({
  name: String,
  images:[{
    type:String
  }],
  sizes:[{
    type: String
  }],
  colors:[{
    type: Schema.ObjectId,
    ref: 'Color'
  }],
  frontColors:[{
    type: Schema.ObjectId,
    ref: 'Color'
  }],
  script: Boolean
},{
  timestamps: true
});

var Err = mongoose.model('Err', errSchema);

module.exports = Err;

Code für ein Arbeitsschema:

var mongoose = require('mongoose');
var Schema = mongoose.Schema;

var colorSchema = new Schema({
  name: String,
  image: String,
  rgb: String,
  comment: String,
});

var Color = mongoose.model('Color', colorSchema);

module.exports = Color;

Jede Hilfe wäre dankbar!

11

Es sollte Schema.Types.ObjectId sein, nicht Schema.ObjectId: http://mongoosejs.com/docs/schematypes.html

4
str

Ich bin auf das Gleiche gestoßen. Ich habe vorherigen Code wie diesen

    var mongoose = require('mongoose');
    var Schema = mongoose.Schema();
    var schema = new Schema({
        path : {type:string , required:true},
        title: {type:string , required: true}
    })
 module.export = mongoose.model('game', schema);

Dann löste ich das Konstruktorproblem mit dem folgenden Skript

   var mongoose = require('mongoose');
    var schema = mongoose.Schema({
        path : {type:string , required:true},
        title: {type:string , required: true}
    })
 module.export = mongoose.model('game', schema);
14
crown

Ich habe dieses Problem gelöst, indem ich Schema in Großbuchstaben importiert habe.

Vorherige:

const Scheme = mongoose.schema;

Nach dem Reparieren:

const Schema = mongoose.Schema;

Vollständiges Schema:

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

const ItemSchema = new Schema({
    name : {
        type: String,
        required : true
    },
    date : {
        type : Date,
        default : Date.Now
    }
});
module.exports = mongoose.model('Item', ItemSchema);
2
huzaifamansoor

Ich verstehe die Partei zu spät, aber der untenstehende Code hat für mich funktioniert, könnte für jemanden hilfreich sein, der mongoose Version 5.2.15 verwendet

const mongoose = require('mongoose');
const Scheme = mongoose.Schema;

const ItemSchema = new Scheme({
    name: {
        type: String,
        require: true
    },
    date: {
        type: Date,
        default: Date.now
    }
});

module.exports = Item = mongoose.model('Item', ItemSchema);
0
Khaja Mohammed