2017-12-11 7 views
1

私は、人々がコメントや好きになる投稿システムを設定しようとしています。誰かが好きなときにこれは私がこの好きなときに投稿のIDを取得する - Node.js Express Socket.io

<!-- 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を知ることができているようにソケットを使用し、今私がやったこと

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

です(task._idは定義されていません)?より良い解決策があれば、教えてください。

答えて

0

他のテンプレートファイルに値を渡していません。そこよりも、それよりも、それが動作するかどうか、私は知っていると、ない場合に何かがあるのならば、私が表示されますこと

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

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

は、より多くのようになりニーズ提案する。

+0

Thx @mattです。 _Errorを返します:ENOENT:/views/posts/(post.ejs '、{task:task})をURLとしてオープンしようとするため、そのようなファイルやディレクトリはありません。 どうすれば解決できますか? thx – phenric

+0

Hmmm ...私はejsのドキュメントから直接構文を得ました。どのバージョンを実行していますか? –

+0

バージョン1.0.0。しかし、おそらく、私は更新する必要があります。 – phenric

関連する問題