如何在 express 中添加和存储页面的查看次数

How to add and store view count for a page in express

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

为了做到这一点,我必须知道哪一篇文章很受欢迎或浏览次数最多,所以我需要对每篇文章进行浏览(访问)计数。

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

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

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

我如何添加观看次数或请求次数?或任何其他方式?

您可以依赖 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 just fies over the query builder, but all you'll need is to expose him the same way you could expose a model (i.e. exports it) or to access it through the bookshelf 映射器。

另外,如果您使用 knex migrations,您可以需要 knexfile.js 配置文件。