sql >> Database >  >> NoSQL >> MongoDB

Dynamische URL's weergeven met express en mongodb

Als ik je goed begrijp, zou ik dat andersom doen.

Korte versie

  1. Ik zou de id . krijgen van de URL
  2. Dan zou ik de gegevens uit de database halen die bij deze id horen
  3. En gebruik deze gegevens om de laatste pagina op te bouwen.

U hoeft niet voor elke URL een nieuwe route te maken. Een URL kan een variabele bevatten (hier de id ) en Express kunnen de URL ontleden om deze variabele te krijgen. Dan van deze id je kunt de gegevens krijgen die nodig zijn om de juiste pagina te bouwen.

Lange versie

Ik neem aan dat iemand deze URL typt:http://domain.com/1234 .
Ik neem ook aan dat je een variabele titles . hebt wat een MongoDB-verzameling is.

U kunt een route als volgt laten definiëren:

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

Bewerken

Ik heb enkele wijzigingen aangebracht volgens de laatste opmerkingen...




  1. MongoDB - afsluiten met code:62

  2. De strijd om de NoSQL-databases - MongoDB en Oracle NoSQL vergelijken

  3. Best practices om asynchroon gedupliceerde gegevens in mongodb bij te werken

  4. MongoDB voor elk()