实例化水线模型

时间:2015-09-04 04:42:03

标签: express waterline

我可以使用以下方式初始化水线模型。

    var user = Waterline.Collection.extend({

      attributes: {
        name: 'string',
        password: 'string',

        // Override toJSON instance method 
        toJSON: function() {
          var obj = this.toObject();
          delete obj.password;
          return obj;
        }
      }
    });
module.exports = user;

然后我尝试使用以下方法在不同的文件中实例化水线模型。

var user = require(' ./ user'); user.find({id:1})。exec(function(err,model){   return model.toJSON(); //将仅返回名称 });

但后来我收到以下错误。

User.find({ "first_name": "lahiru" }).exec(function (err, model) {
     ^
TypeError: undefined is not a function

是否有一种特定方法可以从初始化用户实例化用户模型。任何形式的帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

你必须实例化Waterline

var Waterline = require('waterline');
var waterline= new Waterline();

然后你必须加载集合

var User = require('user.js');
waterline.loadCollection(User);

最后初始化Waterline

waterline.initialize(connectionConfig, function(err, models) {
   if(err) {
         logger.err('Error initializing ORM', err);
         throw err;
   };
   models.collections.user.find().exec(function(err, users){
       if(err) throw err;
       console.log(users);
   })
});

您可以在models.collections下找到您的模型。 Nb:为您的模型提供身份名称

var user = Waterline.Collection.extend({
  identity : 'user',
  attributes: {
    name: 'string',
    password: 'string',

    // Override toJSON instance method 
    toJSON: function() {
      var obj = this.toObject();
      delete obj.password;
      return obj;
    }
  }
});