Bookshelf.js - 更新记录后,初始页面 load/query 显示旧记录。刷新后数据正确显示
Bookshelf.js - After updating record, initial page load/query displays old record. After refresh data displays correctly
当我使用书架将一列设置为空,并重定向到显示该数据的页面时,数据显示未更新的记录,直到我刷新。这是代码:
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);
});
有谁知道我如何获取更新的记录,或者让我知道我是否错误地更新了记录?任何解决此问题的帮助将不胜感激,因为在用户刚刚更新后我无法使用旧数据呈现页面...
您写的是像同步代码一样保存数据,因此 save() 可能(而且经常会)在 refresh() 之后发生。尝试将其更改为:
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');
});
当我使用书架将一列设置为空,并重定向到显示该数据的页面时,数据显示未更新的记录,直到我刷新。这是代码:
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);
});
有谁知道我如何获取更新的记录,或者让我知道我是否错误地更新了记录?任何解决此问题的帮助将不胜感激,因为在用户刚刚更新后我无法使用旧数据呈现页面...
您写的是像同步代码一样保存数据,因此 save() 可能(而且经常会)在 refresh() 之后发生。尝试将其更改为:
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');
});