喜欢时获取帖子的ID - Node.js Express Socket.io

时间:2017-12-11 21:11:50

标签: node.js express socket.io ejs

我试图建立一个人们可以评论和喜欢的帖子系统。这就是我现在所做的

<!-- posts.ejs  -->
<% posts.forEach(function(task) { %>
    <%- include post.ejs %>
<% }) %>

当有人喜欢时,我会像这样使用套接字

<!-- post.ejs -->
<script>
var socket = io('localhost:48001');
$('#like').on('click', function(event){
    var task = <% task._id %> 
    console.log(task);
    var liker = {
        pId: task ,
        usr: user._id,
        liker: 1
    };
    socket.emit('like', liker, function(response){
        if(response==true){
                //console.log("blue");
        }
    });
});

//server side
exports.like = (pId, usr) => {
Post.findOneAndUpdate({_id :pId}, {$inc : {'likers' : 1}}).exec();
};

我的问题是如何知道喜欢的帖子的id(task._id是未定义的)?如果您有更好的解决方案,请告诉我。

1 个答案:

答案 0 :(得分:0)

您没有将任何值传递到其他模板文件中。

<% posts.forEach(function(task) { %>
  <%- include post.ejs %>
<% }) %>

需要更像:

<% posts.forEach(function(task) { %>
  <%- include('post.ejs', { task: task }) %>
<% }) %>

可能还有更多内容,但请告知我是否有效,如果没有,我会看看是否还有其他建议。