MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Servindo URLs dinâmicos com express e mongodb


Se entendi bem, faria o contrário.

Versão curta

  1. Eu obteria o id do URL
  2. Então eu extrairia do banco de dados os dados associados a este id
  3. E use esses dados para criar a página final.

Você não precisa criar uma nova rota para cada URL. Um URL pode conter alguma variável (aqui o id ) e o Express pode analisar a URL para obter essa variável. Então, a partir deste id você pode obter os dados necessários para construir a página adequada.

Versão longa


Suponho que alguém digite este URL:http://domain.com/1234 .
Eu também suponho que você tenha uma variável titles que é uma coleção do MongoDB.

Você pode ter uma rota definida assim:
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... */});
  });
});

Editar


Fiz algumas alterações de acordo com os últimos comentários...