Express-next()未在控制器中调用

时间:2019-02-09 13:16:18

标签: express mean-stack mean

在我的MEAN堆栈应用程序中,我有2个收藏集-新闻与评论。发表评论后,将首先保存评论,然后更新新闻收藏。

我在express的帮助下使用2个函数,如下所示:

//CommentsController.js
//Function  1
exports.addComment = (req, res, next) => {
  const comment = new Comment({
    //Key values
  });
  comment
    .save()
    .then(createdComment => {
      req.createdComment = comment;
      next();
    })
};


//Function 2
exports.updateNews = (req, res, next) => {
  let newsId = req.body.newsId;
  let comment = req.createdComment;
  News.findById(newsId)
    .then(news => {
      News.update({ _id: newsId }, {
        $push: { comment }
      })
      .then(item => {
        res.status(201).json({
          message: "Comment added successfully"
        });
      })
    });
}

我的路由器文件如下:

const express = require("express");
var CommentsController = require('../controllers/commentsController');

const router = express.Router();
router.post("", CommentsController.addComment);
module.exports = router;

我面临的问题是,成功保存addComment之后,即使调用next(),也不会调用“ updateNews”函数。我不确定缺少什么。

1 个答案:

答案 0 :(得分:0)

正如@vapurrmaid提到的(在评论中),我找到了自己问题的答案。

答案是:

router.post("", CommentsController.addComment, CommentsController.updateNews);


谢谢@vapurrmaid