2012-08-28 16 views
9

Jestem całkiem nowy dla Javascript i node.js i próbuję utworzyć REST API, a adresy URL będą miały postać.Jak uzyskać identyfikator z adresu URL podczas korzystania z pliku node.js

  1. /user/{userId}/docs

Próbuję uzyskać wartość {userId}, która w przypadku /user/5/docs będzie 5.

Mogę spróbować przekazać to jako parametr żądania (w zapytaniu lub w treści, w zależności od metody GET lub POST), ale adres URL wygląda bardziej intuicyjnie, gdy zostanie utworzony w ten sposób. Plus istnieje wiele więcej adresów URL, które są podobne.

Zastanawiam się, czy istnieją jakieś moduły węzła, takie jak ekspresowe, które zapewniają to.

Jestem tradycyjnym użytkownikiem Java i ramką Jersey używaną do zapewnienia takiej rzeczy w Java.

Dzięki Tuco

+0

Tak, moduł Express oferuje tego. – JohnnyHK

+0

Cześć Johnny, czy możesz podać przykład. – Tuco

+0

Zobacz odpowiedź Josha. – JohnnyHK

Odpowiedz

45

spędzić trochę czasu z the documentation. Express korzysta z : do określenia zmiennej w trasie:

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

napisać następujący w skrypcie serwera:

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

Zauważyłem to również, gdy '' split ('/') ', otrzymuję tablicę z pierwszym i ostatnim indeksami jako pustymi ciągami ... dlaczego tak jest? – denikov

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