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