dynamic地定义并获取水线中的模型

我想知道在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.modelsreq._sails.models独占访问模型,并且您不希望将模型导出为全局对象的属性,则可以将configurationglobals.models = false

https://github.com/balderdashy/sails-generate-backend/blob/master/templates/config/globals.js#L53-62