2012-08-28 43 views
9

Soy bastante nuevo en Javascript y node.js y estoy tratando de crear un REST API, y las URL serán de la forma.cómo obtener el Id de la URL mientras usa node.js

  1. /user/{userId}/docs

estoy tratando de obtener el valor de {userId}, que en el caso de /user/5/docs será 5.

Podría tratar de pasar esto como un parámetro de solicitud (en la cadena de consulta o en el cuerpo, dependiendo del método GET o POST), pero la url parece más intuitiva cuando se forma este testamento. Además, hay muchas más URL que son como estas.

Me pregunto si hay módulos de nodos como express que lo prevean.

Soy un usuario tradicional Java y Jersey marco utilizado para proporcionar tal cosa en Java.

Gracias, Tuco

+0

Sí, el módulo Express proporciona esto. – JohnnyHK

+0

Hola Johnny, puedes dar un ejemplo. – Tuco

+0

Ver la respuesta de Josh. – JohnnyHK

Respuesta

45

pasar algún tiempo con the documentation. Express utiliza el : para denotar una variable en una ruta:

app.get('/user/:id/docs', function(req, res) { 
    var id = req.params.id; 
}); 
1

escribir la siguiente secuencia de comandos en el servidor:

var http = require('http'); 
var server = http.createServer(function (request, response) { 
    var url = request.url; //this will be /user/5/docs 
    url.id = url.split("/")[2]; // this will be 5 
    response.writeHead(200, {'Content-Type' : 'text/html'}); 
    response.end("Id is = " + url.id); 
}); 
server.listen(8000, '127.0.0.1'); 
+0

Me di cuenta de esto también, cuando 'split' ('/') ', obtengo una matriz con los primeros y últimos índices como cadenas vacías ... ¿por qué? – denikov

0
var pathName = url.parse(request.url).pathname; 
var id = pathName.split("="); 
var userId = id[1];