我使用save()
方法(Bookshelf.js)来更新PostgreSQL中的数据。我想在更新后如何获取完整的模型(所有列)?在我看来,save()
方法仅返回id
和更新列。我可能做错了所以任何指导都将不胜感激。感谢。
答案 0 :(得分:1)
在Sequelizejs中,我们使用这种方法只是在操作成功时调用你的函数中的任何模型。名字你可以试试这里
new Author({id: 1, first_name: 'User'})
.save({bio: 'Short user bio'}, {patch: true})
.then(function(model) {
//two approach
//try this but not sure work in Bookshelf or not
return model.fetchAll();
//or u can try
new Article().fetchAll()
.then(function(articles) {
res.send(articles.toJSON());
}).catch(function(error) {
res.send('An error occured');
});
});
答案 1 :(得分:0)
.save()书架方法返回attributes
字段中的更新对象。
new User().save({ firstname: 'Foo', lastname: 'Bar' })
.then(data => {
console.log(data.attributes);
// You can also do this to remove Bookshelf Model methods
data = data.toJSON();
console.log(data);
});
答案 2 :(得分:0)
如果我正确的话。您想获取刚刚更新的行的所有列。然后,您可以执行以下操作:
User.where({ name: name }).fetch().asCallback(function(err, existingEntry){
if(existingEntry){
existingEntry.save({
address: address,
}).asCallback(function(err, updatedColumns){
console.log(existingEntry); // Here you will get all the columns of the updated row
console.log(updatedColumns); // Here you can get the columns that you have just updated
})
}
})
如果是我所说的情况,对我有用,对所有人都有用。此代码的另一件事是针对0.8.2版的书架。不要误会