/ / Itinéraires nommés dans les conditions préalables param - node.js, routage, express

Itinéraires nommés dans les conditions préalables param - node.js, routage, express

Je voudrais utiliser un Pré-condition de paramètre de route chercher les éléments du portefeuille par "slug" si le paramètre: slug est défini dans l'URL. Cependant, j’aimerais aussi utiliser un RegExp pour correspondre à l'URI. Les captures nommées sont-elles prises en charge dans le noeud? Puis-je donner que ([-w]+) capturer un nom de sorte que le limace la condition préalable est renvoyée?

app.param("slug", function(req, res, next, slug){
// get thing from database by slug
})

//app.get("/work/view/:slug", function(req, res){
app.get(/^/work/view/([-w]+)/, function(req, res){
// render view
})

Réponses:

3 pour la réponse № 1

Je ne sais pas si c’est ce que vous cherchez,mais pour autant que je sache, il n'y a pas de moyen direct de faire ce dont vous avez besoin. Cependant, vous pouvez utiliser un paramètre nommé ("slug") et ajouter une précodition Regex avec la vôtre pour obtenir le même effet.

Jetez un oeil à visionmedia "s express-params module ici. Je m'attends à ce qu'il soit maintenu correctement puisqu'il provient du créateur de l'expression.

Ce que vous allez faire (après avoir installé express-param) ressemble à quelque chose comme ceci:

app.param("slug", /^[-w]+$/);

app.param("slug", function(req, res, next, slug){
// get thing from database by slug
});

app.get("/work/view/:slug", function(req, res){
//render view
});

Je n'ai toutefois pas testé cela.