帆创建回调没有插入值

Posted

技术标签:

【中文标题】帆创建回调没有插入值【英文标题】:sails create-callback doesn't have inserted value 【发布时间】:2018-01-12 13:06:40 【问题描述】:

在使用sails 1.0 时遇到问题。

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

在 Sails.js v1 中,您必须包含 .fetch() 函数来发回在执行 .update()、.create()、.createEach() 或 .销毁()查询。否则,不会返回任何数据(或者如果您使用回调,则 .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() here 上的官方 Sails 文档。

【讨论】:

我在使用 'await' 的回调中遇到问题;在“ var newUser = await User.create( fullName: 'Alice McBailey' ).fetch();”中'User' 是型号名称吗?在我的场景中它说“未定义”。

以上是关于帆创建回调没有插入值的主要内容,如果未能解决你的问题,请参考以下文章

插入没有值的表的语法?

创建一个接受插入值的 SQL 视图

所有值都没有插入我的数据库(laravel-5.7)

离子原生文件:File.writeFile 不工作(文件没有被创建+没有回调响应)

网投简历+宣讲会内容流水账(得帆宣讲会+汉得宣讲会)+感想

网投简历+宣讲会内容流水账(得帆宣讲会+汉得宣讲会)+感想+汉得offer