sails create-callback 没有插入值

sails create-callback doesn't have inserted value

在使用 sails 1.0 时我 运行 遇到了问题。

风帆 documentation 描述 create 函数的回调(或承诺)有一个描述插入记录的参数。在我的例子中(见下面的代码)这个值总是 "undefined"。我可以验证该条目是否已添加到数据库中。 (都使用 postgresql 和 localdiskdb)。 - 因此模型设置正确。

路线连接(正确)到:

add: function (req, res) {
    const params = req.allParams();
    const {
      event_id,
      name,
      date,
    } = params;
    const dat = {
      name:name,
      id:Number(event_id),
      date_start:new Date(Number(date)),
    };
    console.log(dat);
    console.log(typeof dat.location);
    Event.create(dat)
      .then(function (result){
        console.log(result)
        return res.ok();
      })
      .catch(function (err){
        console.log(err);
        return res.send(err);
      });
}

那么为什么我的回调中的 result 未定义?

使用 Sails.js v1,您必须包含 .fetch() 函数以在执行 .update()、.create()、.createEach 时发回 updated/destroyed/created 的记录() 或 .destroy() 查询。否则,不会返回任何数据(或者如果您使用回调,.exec() 回调的第二个参数将是未定义的。)

官方示例:

var newUser = await User.create({ fullName: 'Alice McBailey' }).fetch();

对于上面的代码,尝试:

Event.create(dat).fetch().exec(function(err, result){
  if(err) {
    console.log(err);
    return res.send(err);
  }
  console.log(result)
  return res.ok();
})

有关详细信息,请参阅有关 .fetch() 的官方 sails 文档 here