В моем стековом приложении 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 ().Я не уверен, чего не хватает.