我在网上看到的大部分例子都是......
var UserSchema = new mongoose.Schema({
name: String,
age: String
});
然而,最近我发现一本书做了以上......但没有新的关键字。
var UserSchema = mongoose.Schema({
name: String,
age: String
});
我现在很困惑。我们是否使用new关键字来创建模式?在两种情况下会发生什么?
答案 0 :(得分:4)
两者都有效并返回Mongoose.Schema
类的新实例。这意味着两者都完全一样。这个line检查你是否已经拥有Schema类的实例,如果没有,它会为你返回一个。
总结一下,如果你打电话
var schema = new mongoose.Schema({})
你自己初始化一个实例,如果你打电话
var schema = mongoose.Schema({})
mongoose为你初始化一个,用这个:
function Schema(obj, options) {
if (!(this instanceof Schema)) {
return new Schema(obj, options);
}
...