2017-12-18 15 views
2

することにより、以下のように私は、コレクションの構造ではMongoDBを使用します。エクスプレスJSの表示データID

チャットボット収集

<ul class="menu-sidebar"> 
     <% for(var i = 0; i < chatbot.length; i++) { %> 
      <li> 
      <a href="/cpanel/chat-bot/:id"><span class="fa fa-circle-o"></span><%= chatbot[i].botname %></a> 
      </li> 
     <% } %> 
     </ul> 
index.ejs

{ 
    "_id" : ObjectId("5a2f8edf84b906480af0d121"), 
    "botname" : "Welcome Chat", 
    "description" : "Welcome Chat", 
    "status" : "Inactive" 
} 

route.js

app.get('/cpanel/chat-bot/:id', function(req, res) { 
     if (req.session.user == null) { 
      res.redirect('/cpanel/login'); 
     } else { 
      CB.getAllRecords().then(results => { 
      res.render('cpanel/chat-bot/:id', { udata : req.session.user, chatbot: results}); 
     }).catch(err => { 
       res.sendStatus(500); 
      }); 
     } 
    }); 

データチャットの表示方法mongodbのidのbot?私はURL 2(/ cpanel/chat-bot/2)をクリックすると、mongodbからデータID 1を表示し、url 1(/ cpanel/chat-bot/1)をクリックすると、mongodbからデータID 2が表示されますか?あなたは

app.get('/cpanel/chat-bot/:id', ...) 

のようなルートを設定するとき

答えて

1

ありがとうルートの:id部分は、あなたがパスのその部分のための任意の値に一致するようにしたいし、その後Expressはreq.params.idにマッチしたものは何でも入れますと言っています。そのため、idの値をデータベースクエリの一部として使用する場合は、データベースから目的のデータのみを選択するために、データベースクエリにreq.params.idを使用する必要があります。

res.render('cpanel/chat-bot/:id', ...); 

ちょうどあなたのテンプレートファイルへのパスする必要があることを(テンプレートのファイル名は何でも)::

また、あなたはので、ここからそれを削除レンダリングパスで:idを使用しないでください私たちは本当にあなたが希望DATを選択するようにreq.params.id値を使用する方法で助けることができないようにするには、データベース内のデータについて多くを開示することはありません

res.render('cpanel/chat-bot', ...); 

あなたのデータベースから。私はあなたが何らかのクエリのクエリでそれを使用すると仮定します。

+0

サンプルをお願いしますか? –

+0

@ArifFirmansyah - 何のサンプル? – jfriend00

+0

私のケースに合ったreq.params.idの使い方の例は? –

関連する問題