web-dev-qa-db-ja.com

mongoose TypeError:スキーマはコンストラクターではありません

奇妙なことに出会いました。私はいくつかのマングースモデルを持っています-そして、それらの1つで(1つだけで!)私はこのエラーを受け取ります:

TypeError: Schema is not a constructor

いくつかの作業スキーマがあるため、非常に奇妙です。ロギングを試みましたmongoose.Schema動作していないスキーマであり、実際に動作しているスキーマでのmongoose.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;

作業スキーマのコード:

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;

助けていただければ幸いです!

14

Schema.Types.ObjectIdではなくSchema.ObjectIdである必要があります。 http://mongoosejs.com/docs/schematypes.html

4
str

私は同じことに遭遇しました。このような以前のコードがあります

    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);

その後、以下のスクリプトを使用してコンストラクターの問題を解決しました

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

大文字のスキーマをインポートすることでこの問題を解決しました。

前::

const Scheme = mongoose.schema;

修正後:

const Schema = mongoose.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

パーティーに遅れていることを理解してください

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);
1
Khaja Mohammed