由于后端 数据库结构这边我不是很会设计,现在做成的是当提交新文章后,再去post一次,遍历选中的目录下,统计文章的总数。

问题

在提交文章后,分类目录页并没有渲染新的文章总数,还是因为没有触发mutations的原因

router.post('/category-count', async function(req, res) {
  const { username, checkCategory } = req.body
  new Promise(resolve => {
    checkCategory.map(item => {//checkbox中选中的目录
      Essay.countDocuments({ username, checkCategory: item }, function(
        err,
        count
      ) {
        Category.updateMany(
          { username, category: item },
          {
            $set: {
              sum: count
            }   },
          function(err, docs) {
            console.log('check0')
            resolve()
          } )
        })
       })
    }).then(() => {
    Category.find({ username }, function(err, docs) {
      if (!err) res.send(docs)
    })  })})

前端拿到返回的docs,触发mutations。上面代码我用了promise,先遍历后改变总数后再res.send返回,.then后面那句不能跟promise里面的写在一起,nodejs是异步非阻塞的,上面promise内代码明显阻塞了,所以放到后面再res.send保证了数据是修改了的,返回的新数据


爬。