I've encountered a strange thing. I have several mongoose models - and in one of them (only in one!) I get this error:
TypeError: Schema is not a constructor
I find it very strange as I have several working schemas. I tried logging mongoose.Schema
in the non-working schema and it is indeed different from the mongoose.Schema in my working schemas - how is that possible? The code is almost identical. Here's the code for the non-working 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 for a working schema:
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;
Any help would be appreciated!
I have encountered the same thing. I have previous code like this
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);
Then I solved the constructor problem using below script
var mongoose = require('mongoose'); var schema = mongoose.Schema({ path : {type:string , required:true}, title: {type:string , required: true} }) module.export = mongoose.model('game', schema);
The problem in my case was the export which should (s) at the end:
Problem: missing (s) in exports
module.export = mongoose.model('Event', EventSchema);
Solution: add (s) to exports
module.exports = mongoose.model('Event', EventSchema);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With