MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Bereitstellung dynamischer URLs mit Express und Mongodb

Wenn ich dich richtig verstehe, würde ich das umgekehrt machen.

Kurzfassung

  1. Ich würde die id erhalten aus der URL
  2. Dann würde ich die mit dieser id verknüpften Daten aus der Datenbank ziehen
  3. Und verwenden Sie diese Daten, um die endgültige Seite zu erstellen.

Sie müssen nicht für jede URL eine neue Route erstellen. Eine URL kann eine Variable enthalten (hier die id ) und Express kann die URL parsen, um diese Variable zu erhalten. Dann von dieser id Sie können die Daten abrufen, die zum Erstellen der richtigen Seite erforderlich sind.

Lange Version

Ich nehme an, jemand gibt diese URL ein:http://domain.com/1234 .
Ich gehe auch davon aus, dass Sie eine Variable titles haben das ist eine MongoDB-Sammlung.

Sie können eine Route wie folgt definieren:

app.get('/:id', function(req, res) {
  // Then you can use the value of the id with req.params.id
  // So you use it to get the data from your database:
  return titles.findOne({ id: req.params.id }, function (err, post) {
    if (err) { throw(err); }

    return res.render('titles', {title: post.title, url: post.URL /*, other data you need... */});
  });
});

Bearbeiten

Ich habe einige Änderungen gemäß den letzten Kommentaren vorgenommen...