我正在为RestLike数据源构建一个Sails / WaterLine适配器。为了将实例返回给WaterLine,我需要将结果转换为处理date和null之类的东西。为此,我需要访问模型上的属性定义。但我无法弄清楚如何访问它们。
sails-rest似乎以某种方式在连接上存储definition
对象,然后稍后使用它来格式化结果。这几乎是我的需要,但我不知道这个definition
对象是如何派生出来的。
水线适配器如何访问模型中定义的属性?
答案 0 :(得分:1)
registerConnection方法获取collections
参数
该对象包含所有模型及其定义。将其存储在连接上,以便稍后在其他适配器方法中引用它。
registerConnection: function(connection, collections, cb) {
if(!connection.identity) return cb(new Error('Connection is missing an identity.'));
if(connections[connection.identity]) return cb(new Error('Connection is already registered.'));
// Add in logic here to initialize connection
// e.g. connections[connection.identity] = new Database(connection, collections);
var dbConnection = '... create connection here ...'
connections[connection.identity] = {
dbConnection : dbConnection,
collections : collections // <-- store collection
}
cb();
}
...稍后您需要模型定义的其他函数
create: function (connection, collection, values, cb){
// database connection
var dbConnection = connections[connection].dbConnection;
// model definition
var definition = connections[connection].collections[collection].definition
// do the rest of the stuff
}