如何在 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 配置文件。
我有一个包含某些类别(商业、娱乐、体育等)的新闻网站,在首页中,我想显示数据库中所有文章中的热门文章列表。
为了做到这一点,我必须知道哪一篇文章很受欢迎或浏览次数最多,所以我需要对每篇文章进行浏览(访问)计数。
点击文章时,我通过使用其 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 配置文件。