在 Waterline 中动态定义和获取模型
Dynamically define and get Models in Waterline
我想知道是否可以在 Waterline 中定义模型或按名称获取模型,如 Node-ORM2。
正在定义:
var Person = db.define("person", {
name : String,
surname : String,
age : Number, // FLOAT
male : Boolean,
continent : [ "Europe", "America", "Asia", "Africa", "Australia", "Antartica" ], // ENUM type
photo : Buffer, // BLOB/BINARY
data : Object // JSON encoded
}, {
methods: {
fullName: function () {
return this.name + ' ' + this.surname;
}
},
validations: {
age: orm.enforce.ranges.number(18, undefined, "under-age")
}
});
获得:
var MyPersonModel = db.models["person"];
谢谢!
Sails 在 sails.models
对象上公开您的模型,因此以下内容将起作用:
var MyPersonModel = sails.models['person'];
如果您想从全局对象访问您的模型:
var MyPersonModel = global['Person'];
sails 对象也可用作 http 请求对象的 属性,因此在任何路由中,您可以:
var MyPersonModel = req._sails.models['person'];
事实上,如果您想通过 sails.models
或 req._sails.models
独占访问模型并且您不希望 sails 将您的模型导出为全局对象的属性,您可以设置配置globals.models = false
.
https://github.com/balderdashy/sails-generate-backend/blob/master/templates/config/globals.js#L53-62
我想知道是否可以在 Waterline 中定义模型或按名称获取模型,如 Node-ORM2。
正在定义:
var Person = db.define("person", {
name : String,
surname : String,
age : Number, // FLOAT
male : Boolean,
continent : [ "Europe", "America", "Asia", "Africa", "Australia", "Antartica" ], // ENUM type
photo : Buffer, // BLOB/BINARY
data : Object // JSON encoded
}, {
methods: {
fullName: function () {
return this.name + ' ' + this.surname;
}
},
validations: {
age: orm.enforce.ranges.number(18, undefined, "under-age")
}
});
获得:
var MyPersonModel = db.models["person"];
谢谢!
Sails 在 sails.models
对象上公开您的模型,因此以下内容将起作用:
var MyPersonModel = sails.models['person'];
如果您想从全局对象访问您的模型:
var MyPersonModel = global['Person'];
sails 对象也可用作 http 请求对象的 属性,因此在任何路由中,您可以:
var MyPersonModel = req._sails.models['person'];
事实上,如果您想通过 sails.models
或 req._sails.models
独占访问模型并且您不希望 sails 将您的模型导出为全局对象的属性,您可以设置配置globals.models = false
.
https://github.com/balderdashy/sails-generate-backend/blob/master/templates/config/globals.js#L53-62