MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Servir des URL dynamiques avec express et mongodb

Si je vous comprends bien, je ferais cela dans l'autre sens.

Version courte

  1. J'obtiendrais l'id à partir de l'URL
  2. Ensuite, je tirerais de la base de données les données associées à cet id
  3. Et utilisez ces données pour créer la page finale.

Vous n'avez pas besoin de créer une nouvelle route pour chaque URL. Une URL peut contenir une variable (ici le id ) et Express peut analyser l'URL afin d'obtenir cette variable. Puis à partir de cet id vous pouvez obtenir les données nécessaires pour créer la bonne page.

Version longue

Je suppose que quelqu'un tape cette URL :http://domain.com/1234 .
Je suppose également que vous avez une variable titles qui est une collection MongoDB.

Vous pouvez définir un itinéraire comme ceci :

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... */});
  });
});

Modifier

J'ai apporté quelques modifications suite aux derniers commentaires...