帆/水线:在模板中获得承诺值

时间:2017-08-10 10:06:19

标签: promise sails.js ejs waterline

我有两个模型:User,与Member的一对多参考相关联。

我想要检索firstName& User模型中的Member的lastName,因此我向getName添加了一个函数Member,该函数首先填充'user'字段,然后返回一个值从这样的模板调用时:

<p><%= data.members[i].getName() %></p>

但是我只在模板中得到“undefined”(而我可以在getName函数中打印出控制台中的好值)。我想这是因为我必须查询基数,因此getName将变为异步并返回Promise。

以下是我的模特:

/**
* User.js
*/
module.exports = {
  attributes : {
    firstName : 'string',
    lastName : 'string',
  }
}

/**
* Member.js
*/
module.exports = {
  attributes : {
    user : {
      model : 'User'
    },
    getName: function() {
      return Member
        .findOne({ id : this.id })
        .populate('user')
        .exec(function(err, member) {
          if(err) return err;
          return member.user.firstName +' '+ member.user.lastName;
      });
    }
  }
}

有人可以通过告诉我我的代码有什么问题来帮助我吗?

P.S。 :这可以通过从控制器而不是从模型中填充“用户”字段来解决,但我还有另一个类似于此问题的问题。

0 个答案:

没有答案