Installing Express
Let's start building our new Express application by installing Express. Type the command that installs the latest version for the 4.9 branch.
npm install express@4.9
The '@' symbol to tell the npm which express version you want to install.
Locations
In our app.js, require the express module and assign it to the express
variable. Using the function assigned to express
, create an application instance and assign it to the app
variable.
var express = require('express'); var app = express();
Using our application instance, app
, create a new route that accepts GETrequests on the /locations
URL path and responds with an Array of city names. The city names should be Caspiana, Indigo and Paradise.
app.get('/locations', function(request, response){ response.send(['Caspiana', 'Indigo', 'Paradise']); });
Finally, bind our application to port 3001 and once it's ready to receive requests, print the string "Running Express"
to the console.
app.listen(3001, function(){ console.log("Running Express"); });
var express = require('express'); var app = express(); app.get('/locations', function(request, response){ response.send(['Caspiana', 'Indigo', 'Paradise']); }); app.listen(3001, function(){ console.log("Running Express"); });
Content Type I
When we run our previous code and issue a GET request to the /locations endpoint, what will the Content-Type header for the response be set to?
Answer: application/json
Content Type II
If we were to craft a response sending a string of text with the response.send()
function, just like the following code, what would Express set this Content-Type to?
app.get('/locations', function(request, response) { var cities = '<ul><li>Caspiana</li><li>Indigo</li><li>Paradise</li></ul>'; response.json(cities); });
Answer: text/html
Cities
In order to better reflect the domain of our application, we want to change our existing route from /locations
to /cities
.
First, change our existing route from /locations
to /cities
.
Now create a new route for /locations
.
Now redirect from /locations
to /cities
path using the Moved Permanently HTTP status code (free hint for you, the code for that is 301).
var express = require('express'); var app = express(); app.get('/cities', function (request, response) { var cities = ['Caspiana', 'Indigo', 'Paradise']; response.send(cities); }); app.get('/locations', function(request, response){ response.redirect(301, '/cities'); }); app.listen(3001, function () { console.log("Running Express"); });