Reputation: 722
I am quite new to Javascript
and node.js
and I'm trying to create a REST API
, and the urls will be of the form.
/user/{userId}/docs
I am trying to get the value of {userId}
, which in the case of /user/5/docs
will be 5
.
I could try to pass this as a request parameter(in the querystring or in the body, depending on the GET
or POST
method), but the url looks more intuitive when it is formed this will. Plus there are many more urls which are like these.
I am wondering if there are any node modules like express which provide for this.
I am a traditional Java
user and Jersey
framework used to provide such a thing in Java
.
Thanks, Tuco
Upvotes: 23
Views: 59643
Reputation: 297
Write the following in the server script:
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');
Upvotes: 5
Reputation: 1003
var pathName = url.parse(request.url).pathname;
var id = pathName.split("=");
var userId = id[1];
Upvotes: 0
Reputation: 144912
Spend some time with the documentation. Express uses the :
to denote a variable in a route:
app.get('/user/:id/docs', function(req, res) {
var id = req.params.id;
});
Upvotes: 89