当我使用bookshelf将列设置为null,并重定向到显示该数据的页面时,数据显示未更新的记录,直到我刷新。这是代码:
Table.where({id: req.param.id}).fetch()
.catch(function (err) {
console.log(err);
})
.then(function (results) {
results.set('other_column', null);
results.save();
results.refresh();
// Redirect to orders page
res.redirect('/landing-page');
});
着陆页查询是:
Table.where({id: req.param.id}).fetch()
.catch(function (err) {
console.log(err);
})
.then(function (results) {
data.results = results.attributes;
res.render('display-page', data);
});
有谁知道如何获取更新的记录,或者让我知道我是否错误地更新了记录?任何帮助解决这个问题都将非常感激,因为在用户刚更新后,我无法使用旧数据呈现页面...
答案 0 :(得分:1)
您正在编写保存数据,如同步代码,因此save()可能(通常会)发生 AFTER 刷新()。尝试将其更改为:
Table.where({id: req.param.id}).fetch()
.catch(function (err) {
console.log(err);
})
.then(function (results) {
return results
.set('other_column', null)
.save();
})
.then(function (results) { // results should now include the saved data
// Redirect to orders page
res.redirect('/landing-page');
});