sql >> Databáze >  >> NoSQL >> MongoDB

Poskytování dynamických adres URL pomocí Express a mongodb

Pokud vám rozumím správně, udělal bych to naopak.

Krátká verze

  1. Získal bych id z adresy URL
  2. Potom bych z databáze vytáhl data spojená s tímto id
  3. A tato data použijte k vytvoření konečné stránky.

Nemusíte vytvářet novou trasu pro každou adresu URL. Adresa URL může obsahovat nějakou proměnnou (zde id ) a Express může analyzovat adresu URL, aby získal tuto proměnnou. Potom z tohoto id můžete získat data potřebná k vytvoření správné stránky.

Dlouhá verze

Předpokládám, že někdo zadá tuto adresu URL:http://domain.com/1234 .
Předpokládám také, že máte proměnnou titles což je sbírka MongoDB.

Trasu můžete mít definovanou takto:

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

Upravit

Udělal jsem nějaké změny podle posledních komentářů...




  1. Jak číst sbírku po kouscích po 1000?

  2. MongoDB 3.6 jak převést řetězec na Object Id

  3. Oznámení klíčového prostoru Redis s StackExchange.Redis

  4. Vypsat dynamické atributy v mongoidním modelu