我在网上看到的大多数例子都是这样做的......
var UserSchema = new mongoose.Schema({
name: String,
age: String
});
然而,最近我发现一本书做了上述...但没有 new 关键字。
var UserSchema = mongoose.Schema({
name: String,
age: String
});
我现在很困惑。我们是否使用 new 关键字来创建模式......在这两种情况下会发生什么?
两者都是有效的并返回一个新的实例Mongoose.Schema
班级。这意味着两者的作用完全相同。这line https://github.com/Automattic/mongoose/blob/f2a40b24d68a929d00108c74bde72ab960de5fd8/lib/schema.js#L69-L71检查您是否已经有 Schema 类的实例,如果没有,它会为您返回一个实例。
总而言之,如果您致电
var schema = new mongoose.Schema({})
您自己初始化一个实例,而如果您调用
var schema = mongoose.Schema({})
mongoose 为你初始化一个,如下:
function Schema(obj, options) {
if (!(this instanceof Schema)) {
return new Schema(obj, options);
}
...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)