使用帆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
未定义?
答案 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文档。