2011-12-14 30 views
36

Digamos que tengo obtener ruta de la siguiente manera:enrutamiento Node.js/Express con params get

app.get('/documents/format/type', function (req, res) { 
    var format = req.params.format, 
     type = req.params.type; 
}); 

Así que si hago petición como

http://localhost:3000/documents/json/mini 

en mi formato y tipo de variables serán ' json 'y' mini 'respectivamente, pero si hago una solicitud como

http://localhost:3000/documents/mini/json 

no. Entonces mi pregunta es: ¿cómo puedo obtener las mismas variables en diferente orden?

+1

usted no 'documentos/Mini/json' es formato' '== mini' y tipo == JSON '. Las URL no son bolsas desordenadas de los parámetros – Raynos

Respuesta

110

Su ruta no está bien, debe quedar así (con ':')

app.get('/documents/:format/:type', function (req, res) { 
    var format = req.params.format, 
     type = req.params.type; 
}); 

también que no se puede intercambiar orden de los parámetros por desgracia. Para obtener más información sobre req.params (y req.query) revisar la referencia de la API here.

+0

alessioalex ¡Gracias por la respuesta! – Erik

+1

// var sanitizer = require ('sanitizer'); var format = sanitizer.escape (formato req.params); Realmente debería desinfectar el resultado. O bien, su sitio web tiene una ENORME vulnerabilidad – user3806549

17

considerar ir a la domain.com/test?format=json&type=mini formato usado comúnmente, a continuación, puede recibir fácilmente a través de

app.get('/test', function(req, res){ 
    var format = req.query.format, 
     type = req.query.type; 
}); 
+0

Gracias. ¡Tu respuesta también es útil para mí! – Erik