MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Servire URL dinamici con express e mongodb

Se ho capito bene, lo farei il contrario.

Versione breve

  1. Vorrei ottenere l'id dall'URL
  2. Poi estrarrei dal database i dati associati a questo id
  3. E usa questi dati per creare la pagina finale.

Non è necessario creare un nuovo percorso per ogni URL. Un URL può contenere delle variabili (qui id ) ed Express possono analizzare l'URL per ottenere questa variabile. Quindi da questo id puoi ottenere i dati necessari per costruire la pagina corretta.

Versione lunga

Presumo che qualcuno digiti questo URL:http://domain.com/1234 .
Presumo anche che tu abbia una variabile titles che è una raccolta MongoDB.

Puoi avere un percorso definito in questo modo:

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

Modifica

Ho apportato alcune modifiche in base agli ultimi commenti...