水线适配器如何访问模型中定义的属性?

时间:2015-06-17 14:11:48

标签: sails.js waterline

我正在为RestLike数据源构建一个Sails / WaterLine适配器。为了将实例返回给WaterLine,我需要将结果转换为处理date和null之类的东西。为此,我需要访问模型上的属性定义。但我无法弄清楚如何访问它们。

sails-rest似乎以某种方式在连接上存储definition对象,然后稍后使用它来格式化结果。这几乎是我的需要,但我不知道这个definition对象是如何派生出来的。

水线适配器如何访问模型中定义的属性?

1 个答案:

答案 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
}