sails create-callback没有插入值

时间:2018-01-12 13:06:41

标签: javascript orm sails.js

使用帆1.0时我遇到了问题。

sails documentation描述了create函数的回调(或promise)有一个描述插入记录的参数。在我的情况下(见下面的代码),这个值总是"未定义"。我可以验证该条目是否已添加到数据库中。 (两者都使用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未定义?

1 个答案:

答案 0 :(得分:1)

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

官方的例子:

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

对于上面的代码,请尝试:

{{1}}

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