diff --git a/controllers/posts.js b/controllers/posts.js index a3e2dab5d..0c742a533 100644 --- a/controllers/posts.js +++ b/controllers/posts.js @@ -1,5 +1,6 @@ const cloudinary = require("../middleware/cloudinary"); const Post = require("../models/Post"); +import Comments from '../models/comments' module.exports = { getProfile: async (req, res) => { @@ -21,7 +22,11 @@ module.exports = { getPost: async (req, res) => { try { const post = await Post.findById(req.params.id); - res.render("post.ejs", { post: post, user: req.user }); + + const comments = await Comments.findAll({postID : req.params.id}).sort({createdAt: 'desc'}).lean() + + res.render("post.ejs", { post: post, user: req.user, comments:comments || [] }); + } catch (err) { console.log(err); } @@ -73,4 +78,18 @@ module.exports = { res.redirect("/profile"); } }, + addComment: async(req,res)=>{ + try{ + await Comments.create({ + commentText: req.body.commentText, + userName : req.user.id, + postID : req.params.id + + }); + console.log('comment added!') + res.redirect(`/post/${req.params.id}`) + }catch(err){ + console.err(err) + } + } }; diff --git a/models/comments.js b/models/comments.js new file mode 100644 index 000000000..6e5d58259 --- /dev/null +++ b/models/comments.js @@ -0,0 +1,21 @@ +import mongoose from 'mongoose' + +const CommentSchema = new mongoose.Schema({ + commentText: { + type: String, + required: true, + }, + userName: { + type: String, + require: true, + }, + postID: { + type: mongoose.Schema.Types.ObjectId + }, + createdAt: { + type: Date, + default: Date.now, + }, +}); + +module.exports = mongoose.model("Comments", CommentSchema); diff --git a/routes/posts.js b/routes/posts.js index aa463ac90..b1c11fe87 100644 --- a/routes/posts.js +++ b/routes/posts.js @@ -11,6 +11,8 @@ router.post("/createPost", upload.single("file"), postsController.createPost); router.put("/likePost/:id", postsController.likePost); +router.post('/addComment/:id', ensureAuth, postsController.addComment) + router.delete("/deletePost/:id", postsController.deletePost); module.exports = router; diff --git a/views/post.ejs b/views/post.ejs index c36a1c946..950acb2eb 100644 --- a/views/post.ejs +++ b/views/post.ejs @@ -21,7 +21,30 @@ > - <%}%> + <%}else{%> +
+ + +
+ <%}%> + + <%if(comments.length > 0){ %> +
+ <% for (let i = 0; i < comments.length; i++) { %> +
+

<%= comments.userName %>

+ <%= comments.commentText %> +
+ <% } %> + + + + <%}%> +