Tuco
Tuco

Reputation: 722

how to get the Id from the URL while using node.js

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.

  1. /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

Answers (3)

Saif Adnan
Saif Adnan

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

Pradeep Banavara
Pradeep Banavara

Reputation: 1003

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

Upvotes: 0

josh3736
josh3736

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

Related Questions