如何插入a increment method就像下面代码中的 bookshelf.knex('articles').increment('fetchCount', 1)
:
router.get('/:id', (req, res) => {
Article.query({
where: {id: req.params.id}
}).fetch().then(article => {
res.json(article)
})
})
我有一个名为“articles”的表,我想在发送 json 响应之前增加 fetchCount 列中的值。
当我使用 bookshelf.knex 时,bookshelf 应该是我的模型,如 Article?
最佳答案
书架方式是这样的:
router.get('/:id', (req, res) => {
Bookshelf.transaction(trx => {
return Article
.query({
where: {id: req.params.id}
})
.fetch({transacting: trx})
.then(article => {
// handle article == null here
return article
.save(
{fetchCount: 1 + article.get('fetchCount')},
{patch: true, transacting: trx})
})
})
.then(article => {
res.json(article)
})
})
要点是在获取和更新时都进行事务,因此确保值在更新之前被锁定并保持一致。
关于bookshelf.js - bookshelf.js 中的 Knex.js 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39443497/