自定义属性方法如何在Sails js中工作

时间:2014-09-27 20:12:40

标签: javascript node.js sails.js waterline

根据documentation自定义属性可以在模型上定义方法,然后用于通过Waterline,Sails JS的ORM查询返回的对象。

这对我不起作用。我从查询中获取了正确的数据,但我在模型上声明的函数都没有工作。试图调用它们导致TypeError:Object [object Object]没有方法'methodName'

(用更清楚的例子更新)

这是我的模型,带有自定义属性方法

module.exports = {

attributes: {
  firstName : {
    type: 'string'
  },
  lastName : {
    type: 'string'
  }
},
  // Custom Attribute Method
  fullName : function(){
    return this.firstName + " " + this.lastName
  }
};

这是我在控制器中使用它的地方

module.exports = {

  findMe: function(req, res){

    User.findOne({firstName:'Todd'}).exec(function(err, user){
      console.log(user.fullName()); //<--TypeError: Object [object Object] has no method 'fullName'
      res.send(user);
    })
   }

};

我错过了什么?

1 个答案:

答案 0 :(得分:4)

全名应包含在其余属性

module.exports = {
    attributes: {
      firstName : {
        type: 'string'
      },
      lastName : {
        type: 'string'
      },
      fullName : function(){
        return this.firstName + " " + this.lastName
      }
    }
}