【问题标题】:Waterline: Populate model related object on create (Sails)Waterline:在创建时填充模型相关对象(Sails)
【发布时间】:2015-07-03 16:22:53
【问题描述】:
    Token.create({
      type: 'invite-into-org',
      email: email,
      initiator: organization,
      sender: req.user,
      metadata: {
        firstName: req.body.firstName,
        lastName: req.body.lastName,
        role: req.body.role
      }
    }).exec(function(err, token) {
      if(err) { return callback(err); }
        console.log("THE TOKEN", token)
      callback(null, token);
    });

打印到控制台以下内容:

THE TOKEN { type: 'invite-into-org',
19:14:39 web.1 |    email: 'somoone@gmail.com',
19:14:39 web.1 |    initiator: 8,
19:14:39 web.1 |    sender: 9,
19:14:39 web.1 |    metadata: { firstName: 'Vasyl', lastName: 'Romanchak', role: 'author' },
19:14:39 web.1 |    createdAt: '2015-07-03T16:14:39.964Z',
19:14:39 web.1 |    updatedAt: '2015-07-03T16:14:39.964Z',
19:14:39 web.1 |    id: '5596b4efe4eccd7b519eedef' }

有没有办法填充发起者和发送者字段?

Token.create({}).populate('sender').exec(console.log) - 还是一样

【问题讨论】:

    标签: mysql mongodb sails.js waterline


    【解决方案1】:

    我的解决方案使用最愚蠢的方式重新查询结果,但它使用 Promise 来获得更好的可读性。

    Token
      .create({
        type     : 'invite-into-org',
        email    : email,
        initiator: organization,
        sender   : req.user,
        metadata : {
          firstName: req.body.firstName,
          lastName : req.body.lastName,
          role     : req.body.role
        }
      })
      .then(function (token) {
        return Token.findOne({id: token.id}).populateAll();
      })
      .then(function (record) {
        console.log('THE TOKEN', record);
    
        callback(null, record);
      })
      .catch(callback);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-01
      • 2016-04-18
      • 1970-01-01
      • 2015-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-05
      相关资源
      最近更新 更多