MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Udostępnianie dynamicznych adresów URL za pomocą ekspresowych i mongodb

Jeśli dobrze się zrozumiem, zrobię to na odwrót.

Krótka wersja

  1. Otrzymałbym id z adresu URL
  2. Wtedy wyciągnąłbym z bazy danych dane powiązane z tym id
  3. I użyj tych danych do zbudowania ostatecznej strony.

Nie musisz tworzyć nowej trasy dla każdego adresu URL. URL może zawierać pewną zmienną (tutaj id ) i Express mogą przeanalizować adres URL w celu uzyskania tej zmiennej. Następnie z tego id możesz uzyskać dane potrzebne do zbudowania właściwej strony.

Długa wersja

Zakładam, że ktoś wpisze ten adres URL:http://domain.com/1234 .
Zakładam również, że masz zmienną titles który jest kolekcją MongoDB.

Możesz zdefiniować trasę w następujący sposób:

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

Edytuj

Wprowadziłem pewne zmiany zgodnie z ostatnimi komentarzami...




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Porady dotyczące migracji z MongoMapper do Mongoid?

  2. najlepsza praktyka mongodb:zagnieżdżanie

  3. MongoDB (noSQL) kiedy dzielić kolekcje

  4. Jak mogę wyłączyć logowanie MongoDB?

  5. Jak uzyskać usunięty dokument w MongoDB?