Express - next () не вызывает контроллер - PullRequest
0 голосов
/ 09 февраля 2019

В моем стековом приложении MEAN есть 2 коллекции - News & Comment.Когда комментарий публикуется, он сначала сохраняется, а затем обновляет коллекцию новостей.

Я использую 2 функции с помощью Express, как показано ниже:

//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 он не вызывает функцию updateNews, даже когда вызывается next ().Я не уверен, чего не хватает.

1 Ответ

0 голосов
/ 09 февраля 2019

Как упомянул @vapurrmaid (в комментариях), я нашел ответ на свой вопрос.

Ответ:

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


Спасибо @ vapurrmaid

...