如何在express中添加和存储页面的视图计数

时间:2016-09-03 07:18:58

标签: express reactjs bookshelf.js knex.js

我有一个包含某些类别(商业,娱乐,体育等)的新闻网站,在首页,我想显示数据库中所有文章的热门文章列表。

为了做到这一点,我必须知道哪篇文章是受欢迎的还是最受欢迎的,所以我需要对每篇文章进行查看(访问)计数。

我在点击文章时通过调用带有id的api请求来获取文章的数据,这是否意味着我所要做的就是计算为每个id调用多少个api?

我在客户端使用react和redux,在服务器中使用express,在数据库中使用knex和bookshelf的postgresql。 这是我在快递文章中获取文章的代码:

Sub CopyDataByDay()

Dim sht As Worksheet
Dim data As Range
Dim today As Date

Set sht = ThisWorkbook.Worksheets(1)

Set data = sht.Range("A1")
today = Date

With sht

    Select Case Weekday(today)
        Case vbMonday
            .Range("B1") = data.Value

        Case vbTuesday
            .Range("B2") = data.Value

        Case vbWednesday
            .Range("B3") = data.Value

        Case vbThursday
            .Range("B4") = data.Value

        Case vbFriday
            .Range("B5") = data.Value

        Case vbSaturday
            .Range("B6") = data.Value

    End Select

End With

End Sub

如何向此添加查看或请求计数?或任何其他方式?

1 个答案:

答案 0 :(得分:1)

您可以依赖knex查询构建器,因为Bookshelf使用它:

router.get('/:id', (req, res) => {
   Article.query({
      where: {id: req.params.id}
   }).fetch().then(article => {
      res.json(article)
   }).then(ret => {
      return knex.raw("update articleview set artcount = artcount + 1 where article_id = :id",{id:req.params.id}))
   })
})

您需要的只是在路由器上的require(),就像您需要模型一样。

bookshelf docs只是对查询构建器的影响,但您需要的只是以暴露模型(即导出模型)或通过bookshelf访问模型的方式公开他映射器。

此外,如果您使用的是knex migrations,则可以要求使用knexfile.js配置文件。