帆创建回调没有插入值
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' 是型号名称吗?在我的场景中它说“未定义”。以上是关于帆创建回调没有插入值的主要内容,如果未能解决你的问题,请参考以下文章