Изменение значения параметра Mongodb Onclick - PullRequest
0 голосов
/ 22 марта 2019

Я хочу создать кнопку отчета для постов на моем веб-сайте, в моей модели постов:

Мои ejs на html-странице:

<% posts.forEach(function(post){ %>
        <% if(post.uploadedBy == Tuser){ %>
            <div class="jumbotron jumbotron-fluid">
                <div class="container">
                    <h4 class="display-4" style="text-transform: capitalize;"><%= post.title %></h4>
                    <h5><%= post.uploadedBy %></h5>
                    <p class="lead"><%= post.text %></p>
                    <a href="#" onclick="reported(<%= post %>)">Report Post</a>
                </div>
            </div>
        <% } %>
    <% }) %>

Мой GET для страницы в файле app.js:

//get someone else's blog
router.get('/othersblog/:username',(req,res) => {
    Post.find({},(err,posts) => {
        if(err){
            console.log(err);
        }else{           
            res.render('othersblog',{
                headline: "Website | User Blog",
                title: "Blog",
                Tuser: req.params.username,
                posts: posts,
            });
        }
    })
});

Если вы знаете, как это сделать, пожалуйста, помогите мне. Спасибо.

1 Ответ

1 голос
/ 22 марта 2019

Что вы можете сделать, это создать маршрут получения для каждого из них post.
Используйте эту ссылку в вашем forEach цикле

<a href="/posts/report/<%= post._id %>" >Report Post</a>

И вот ваш маршрут.

router.get('/posts/report/:id',(req,res) => {
    Post.findById(req.params.id, (err,post) => {
        if(err){
            // handle error here
        }else{  
            // Here you can do what you want.
            // You can update post object.
            post.reported = true;
            post.save((error, updatedPost) => {
               // run code here.
               // You can redirect to the previous page with all posts
               // or do anything else you want.
            });      
        }
    })
});
...