mongoose TypeError: Schema is not a constructor
mongoose TypeError: Schema is not a constructor
我遇到了一件奇怪的事情。我有几个猫鼬模型 - 其中一个(只有一个!)我得到这个错误:
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;
如有任何帮助,我们将不胜感激!
应该是Schema.Types.ObjectId
,不是Schema.ObjectId
:http://mongoosejs.com/docs/schematypes.html
我遇到过同样的事情。我以前有这样的代码
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);
我来晚了,但下面的代码对我有用,可能对使用 mongoose 5.2.15 版的人有帮助
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);
我通过导入大写模式解决了这个问题。
上一个:
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);
使用mongoose.Schema
代替let Schema = mongoose.Schema();
我遇到了同样的问题
上一个代码
module.export = mongoose.model('AllClassList', allClassListSchema);
正确的代码
module.exports = mongoose.model('AllClassList', allClassListSchema);
我在导出结束时漏掉了“s”
在我的案例中,问题是导出应该在最后:
问题:导出中缺少 (s)
module.export = mongoose.model('Event', EventSchema);
解决方法:将(s)添加到exports
module.exports = mongoose.model('Event', EventSchema);
对于仍然有错误的任何人
- 检查 package.json 上的 mongoose 版本,看看它是否是旧版本
- 重新安装到最新版本
对我有用!!
我遇到这个问题,我的解决方案是在 module.export 中添加 (s),但我忘记在最后添加 s,这就是为什么我的架构不是构造函数。
问题既不是大写 Schama,也不是忘记导出“s”。
它不小心删除了:“('mongoose')”,而我正在编码!!!所以我又添加了它!问题已解决!!
const mongoose = require('mongoose');
import mongoose from "mongoose";
connectDB(mongoURI); // database connection
// create schema
const student = new mongoose.Schema({
name: String,
workout: Boolean,
height: Number,
});
// create model in students collections
const Student = new mongoose.model("Student", student);
// store data
const adder = async () => {
const ss = await Student.create({
name: "jiya",
workout: true,
height: 6,
});
};
//call function
adder();
我在 _Schema
的帮助下尝试了这个
const mongoose = require('mongoose');
const _schema = mongoose.Schema;
//creat schema
const IdeaSchema = new _schema({
title: {
type: String,
required: true
},
details: {
type: String,
required: true
},
date: {
type: Date,
default: Date.now
}
});
module.exports = mongoose.model('ideas', IdeaSchema);
我遇到了一件奇怪的事情。我有几个猫鼬模型 - 其中一个(只有一个!)我得到这个错误:
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;
如有任何帮助,我们将不胜感激!
应该是Schema.Types.ObjectId
,不是Schema.ObjectId
:http://mongoosejs.com/docs/schematypes.html
我遇到过同样的事情。我以前有这样的代码
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);
我来晚了,但下面的代码对我有用,可能对使用 mongoose 5.2.15 版的人有帮助
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);
我通过导入大写模式解决了这个问题。
上一个:
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);
使用mongoose.Schema
代替let Schema = mongoose.Schema();
我遇到了同样的问题
上一个代码
module.export = mongoose.model('AllClassList', allClassListSchema);
正确的代码
module.exports = mongoose.model('AllClassList', allClassListSchema);
我在导出结束时漏掉了“s”
在我的案例中,问题是导出应该在最后:
问题:导出中缺少 (s)
module.export = mongoose.model('Event', EventSchema);
解决方法:将(s)添加到exports
module.exports = mongoose.model('Event', EventSchema);
对于仍然有错误的任何人
- 检查 package.json 上的 mongoose 版本,看看它是否是旧版本
- 重新安装到最新版本
对我有用!!
我遇到这个问题,我的解决方案是在 module.export 中添加 (s),但我忘记在最后添加 s,这就是为什么我的架构不是构造函数。
问题既不是大写 Schama,也不是忘记导出“s”。 它不小心删除了:“('mongoose')”,而我正在编码!!!所以我又添加了它!问题已解决!!
const mongoose = require('mongoose');
import mongoose from "mongoose";
connectDB(mongoURI); // database connection
// create schema
const student = new mongoose.Schema({
name: String,
workout: Boolean,
height: Number,
});
// create model in students collections
const Student = new mongoose.model("Student", student);
// store data
const adder = async () => {
const ss = await Student.create({
name: "jiya",
workout: true,
height: 6,
});
};
//call function
adder();
我在 _Schema
的帮助下尝试了这个const mongoose = require('mongoose');
const _schema = mongoose.Schema;
//creat schema
const IdeaSchema = new _schema({
title: {
type: String,
required: true
},
details: {
type: String,
required: true
},
date: {
type: Date,
default: Date.now
}
});
module.exports = mongoose.model('ideas', IdeaSchema);