After learning basics of routing, lets look at some of the advances/complex routing techniques of Express.
In this video tutorial, we shall teach you how to work with multiple params and also defining routes with regular expressions.
Two params in a Route: Express
app.js
var companies = [
{
"name": "Apple",
"product": "iPhone"
},
{
"name": "Google",
"product": "Nexus"
},
{
"name": "Oracle",
"product": "sql"
},
{
"name": "Microsoft",
"product": "Windows"
}
];
app.get('/user/:from-:to', function(req, res){
var from = parseInt(req.params.from, 10),
to = parseInt(req.params.to, 10);
res.json( companies.slice(from, to+1) );
});
Here we have an array of objects – which in real-time application we get from a database ( Ex: MongoDB ). Now we define a route, and get two params in a single URL. By fetching and parsing those two params, we pass it to slice method of array and get array objects within the range/limit. Also note the use of response in json formatting while sending the data using response object.
Regular Expressions in Routes: Express
app.js
app.get(/\/user\/(\d*)\/?(edit)?/, function(req, res){
if(req.params[0])
res.send("Viewing user id: "+req.params[0]);
else if(req.params[1])
res.send("editing user with an id "+req.params[0]);
else
res.send("Enter User ID!!");
});
we enter our regular expression between two forward slashes. And to escape the forward slash present inside our regular expression, we make use of escape character i.e., a back slash. After /user/ we can have zero or more digits, after that an optional edit keyword followed by an optional trailing forward slash.
These routes match our pattern:
/user/
/user/userId/
/user/userId/edit
/user/userId/edit/
Depending on which URL the user is requesting, we could serve the purpose, using conditionals.
Advanced Routing Using Express: Node.js
Note: In our example we are simply displaying the view and edit modes. But in real-time applications you could replace it with some database queries and make sure the operations makes proper sense.
View Comments
Array Object Properties
Array Object Methods