2012-08-28 5 views
9

Ich bin ziemlich neu zu Javascript und node.js und ich versuche, eine REST API zu erstellen, und die URLs werden von der Form sein.Wie bekomme ich die ID von der URL bei der Verwendung von node.js

  1. /user/{userId}/docs

Ich versuche, den Wert von {userId}, die im Fall von /user/5/docs5 werden zu bekommen.

Ich könnte versuchen, diese als Parameter Anforderung übergeben (im Abfragezeichenfolgeflag oder im Körper, je nach GET oder POST Methode), aber die URL sieht eher intuitiv, wenn es diesen Willen gebildet wird. Außerdem gibt es viele weitere URLs, die wie diese sind.

Ich frage mich, ob es irgendwelche Knotenmodule wie Express gibt, die dafür sorgen.

Ich bin ein traditioneller Java Benutzer und Jersey Rahmen verwendet, um so etwas in Java zu bieten.

Danke, Tuco

+0

Ja, die Express-Modul diese zur Verfügung stellt. – JohnnyHK

+0

Hallo Johnny, kannst du bitte ein Beispiel geben. – Tuco

+0

Siehe Joshs Antwort. – JohnnyHK

Antwort

45

einige Zeit mit the documentation verbringen. Express verwendet die : eine Variable in einer Route zu bezeichnen:

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

Schreiben Sie in dem Server-Skript die folgenden:

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

Mir ist das auch aufgefallen, als ich 'split '('/')' habe, bekomme ich ein Array mit ersten und letzten Indizes als leere Strings ... warum ist das so? – denikov

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