2017-12-18 1 views
2

I mongodb mit Sammelstruktur wie folgt verwenden:Express JS Display Data von ID

chatbot Sammlung

{ 
    "_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); 
      }); 
     } 
    }); 

index.ejs

<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> 

wie man Datenchat anzeigt Bot von id aus mongodb? Wenn ich auf URL 1 (/ cpanel/chat-bot/1) klicke, wird die Daten-ID 1 von mongodb angezeigt. Wenn ich auf URL 2 (/ cpanel/chat-bot/2) klicke, wird die Daten-ID 2 von mongodb angezeigt. Danke

Antwort

1

Wenn Sie eine Route wie

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

Der :id Teil der Route konfigurieren sagt, dass Sie einen beliebigen Wert für den Teil des Pfades passen wollen, und dann wird Express setzen, was in req.params.id abgestimmt wurde. Wenn Sie also den Wert id als Teil Ihrer Datenbankabfrage verwenden möchten, müssen Sie req.params.id in Ihrer Datenbankabfrage verwenden, um nur die gewünschten Daten aus Ihrer Datenbank auszuwählen.

Darüber hinaus wird nicht benötigt :id in dem Renderpfad es so entfernen sie hier:

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

Das ist nur ein Weg, um Ihre Template-Datei sein sollte (was auch immer der Dateiname der Vorlage ist):

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

Sie offenbaren nicht viel über Ihre Daten in der Datenbank, so dass wir nicht wirklich helfen mit, wie Sie den req.params.id Wert verwenden würden, um die gewünschte dat wählen a aus Ihrer Datenbank. Ich nehme an, Sie würden es in einer Art von Anfrage verwenden.

+0

können Sie bitte eine Probe geben? –

+0

@ArifFirmansyah - Probe von was? – jfriend00

+0

Beispiele für die Verwendung von req.params.id, die zu meinem Fall passt? –