2016-09-12 3 views
2

Как вставить a increment method как bookshelf.knex('articles').increment('fetchCount', 1) в коде ниже:метод Knex.js в bookshelf.js

router.get('/:id', (req, res) => { 
    Article.query({ 
     where: {id: req.params.id} 
    }).fetch().then(article => { 
     res.json(article) 
    }) 
}) 

У меня есть таблица под названием «статьи», и я хочу, чтобы увеличить значение в колонке fetchCount перед тем он отправляет ответ json.

, когда я использую книжную полку.кнекс, книжная полка должна быть моей моделью как статья?

ответ

2

Bookshelf путь что-то вроде:

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) 
    }) 
}) 

Основной момент оказывает сделку как на выборки и обновления, так обеспечивая значение заперт и последовательно, пока не обновляется.

+1

Большое вам спасибо! это сработало отлично! – Dan

Смежные вопросы