Jeśli dobrze się zrozumiem, zrobię to na odwrót.
Krótka wersja
- Otrzymałbym
id
z adresu URL - Wtedy wyciągnąłbym z bazy danych dane powiązane z tym
id
- 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...