Gra*_*ful 6 mongoose mongodb node.js
我在网上看到的大多数例子都是这样的......
var UserSchema = new mongoose.Schema({
name: String,
age: String
});
Run Code Online (Sandbox Code Playgroud)
然而,最近我发现一本书做了上述...但没有 new 关键字。
var UserSchema = mongoose.Schema({
name: String,
age: String
});
Run Code Online (Sandbox Code Playgroud)
我现在很困惑。我们是否使用 new 关键字来创建模式……在这两种情况下会发生什么?
两者都是有效的,并返回Mongoose.Schema该类的新实例。这意味着两者的作用完全相同。这一行检查您是否已经拥有 Schema 类的实例,如果没有,它会为您返回一个。
总而言之,如果你打电话
var schema = new mongoose.Schema({})
Run Code Online (Sandbox Code Playgroud)
你自己初始化一个实例,而如果你调用
var schema = mongoose.Schema({})
Run Code Online (Sandbox Code Playgroud)
猫鼬为您初始化一个,如下:
function Schema(obj, options) {
if (!(this instanceof Schema)) {
return new Schema(obj, options);
}
...
Run Code Online (Sandbox Code Playgroud)