Express.js is, in the words of the developers, a "fast, unopinionated, minimalist web framework for Node.js."
Designed to be minimal and flexible, Express offers a set of features for creating web and mobile applications. From HTTP methods to built-in middleware, Express is designed to provide you with the features you need to build a web or mobile app on Node.js.
If you want to build an app on Node.js Express is a great choice, whether you use vanilla Express or one of the many frameworks either based on Express or built on top of Express. A few of these frameworks can be found here.
Version | Notes | Release Date |
---|---|---|
4.15.3 | 2017-05-16 | |
4.15.2 | 2017-03-06 | |
4.15.1 | 2017-03-05 | |
4.15.0 | 2017-03-01 | |
4.14.1 | 2017-01-28 | |
4.14.0 | 2016-06-16 | |
4.13.4 | 2016-01-21 | |
4.13.3 | 2015-08-02 | |
4.13.2 | 2015-07-31 | |
4.13.1 | 2015-07-05 | |
4.13.0 | 2015-06-20 | |
4.12.4 | 2015-05-17 | |
4.12.3 | 2015-03-17 | |
4.12.2 | 2015-03-02 | |
4.12.1 | 2015-03-01 | |
4.12.0 | 2015-02-23 | |
4.11.2 | 2015-01-20 | |
4.11.1 | 2015-01-20 | |
4.11.0 | 2015-01-13 | |
4.10.8 | 2015-01-13 | |
4.10.7 | 2015-01-04 | |
4.10.6 | 2014-12-12 | |
4.10.5 | 2014-12-10 | |
4.10.4 | 2014-11-24 | |
4.10.3 | 2014-11-23 | |
4.10.2 | 2014-11-09 | |
4.10.1 | 2014-10-28 | |
4.10.0 | 2014-10-23 | |
4.9.8 | 2014-10-17 | |
4.9.7 | 2014-10-10 | |
4.9.6 | 2014-10-08 | |
4.9.5 | 2014-09-24 | |
4.9.4 | 2014-09-19 | |
4.9.3 | 2014-09-18 | |
4.9.2 | 2014-09-17 | |
4.9.1 | 2014-09-16 | |
4.9.0 | 2014-09-08 | |
4.8.8 | 2014-09-04 | |
4.8.7 | 2014-08-29 | |
4.8.6 | 2014-08-27 | |
4.8.5 | 2014-08-18 | |
4.8.4 | 2014-08-14 | |
4.8.3 | 2014-08-10 | |
4.8.2 | 2014-08-07 | |
4.8.1 | 2014-08-06 | |
4.8.0 | 2014-08-05 | |
4.7.4 | 2014-08-04 | |
4.7.3 | 2014-08-04 | |
4.7.2 | 2014-07-27 | |
4.7.1 | 2014-07-26 | |
4.7.0 | 2014-07-25 | |
4.6.1 | 2014-07-12 | |
4.6.0 | 2014-07-11 | |
4.5.1 | 2014-07-06 | |
4.5.0 | 2014-07-04 | |
4.4.5 | 2014-06-26 | |
4.4.4 | 2014-06-20 | |
4.4.3 | 2014-06-11 | |
4.4.2 | 2014-06-09 | |
4.4.1 | 2014-06-02 | |
4.4.0 | 2014-05-30 | |
4.3.2 | 2014-05-28 | |
4.3.1 | 2014-05-23 | |
4.3.0 | 2014-05-21 | |
4.2.0 | 2014-05-11 | |
4.1.2 | 2014-05-08 | |
4.1.1 | 2014-04-27 | |
4.1.0 | 2014-04-24 | |
4.0.0 | 2014-04-09 | |
3.21.2 | From here to | 2015-07-31 |
3.21.1 | 3.18.6 dates | 2015-07-05 |
3.21.0 | seem wrong | 2015-06-18 |
3.20.3 | 2015-05-17 | |
3.20.2 | 2015-03-16 | |
3.20.1 | 2015-02-28 | |
3.20.0 | 2015-02-18 | |
3.19.2 | 2015-02-01 | |
3.19.1 | 2015-01-20 | |
3.19.0 | 2015-01-09 | |
3.18.6 | 2014-12-12 | |
3.18.5 | 2014-12-11 | |
3.18.4 | 2014-11-23 | |
3.18.3 | 2014-11-09 | |
3.18.2 | 2014-10-28 | |
3.18.1 | 2014-10-22 | |
3.18.0 | 2014-10-17 | |
3.17.8 | 2014-10-15 | |
3.17.7 | 2014-10-08 | |
3.17.6 | 2014-10-02 | |
3.17.5 | 2014-09-24 | |
3.17.4 | 2014-09-19 | |
3.17.3 | 2014-09-18 | |
3.17.2 | 2014-09-15 | |
3.17.1 | 2014-09-08 | |
3.17.0 | 2014-09-08 | |
3.16.10 | 2014-09-04 | |
3.16.9 | 2014-08-29 | |
3.16.8 | 2014-08-27 | |
3.16.7 | 2014-08-18 | |
3.16.6 | 2014-08-14 | |
3.16.5 | 2014-08-11 | |
3.16.4 | 2014-08-10 | |
3.16.3 | 2014-08-07 | |
3.16.2 | 2014-08-07 | |
3.16.1 | 2014-08-06 | |
3.16.0 | 2014-08-05 | |
3.15.3 | 2014-08-04 | |
3.15.2 | 2014-07-27 | |
3.15.1 | 2014-07-26 | |
3.15.0 | 2014-07-22 | |
3.14.0 | 2014-07-11 | |
3.13.0 | 2014-07-03 | |
3.12.1 | 2014-06-26 | |
3.12.0 | 2014-06-21 | |
3.11.0 | 2014-06-19 | |
3.10.5 | 2014-06-11 | |
3.10.4 | 2014-06-09 | |
3.10.3 | 2014-06-05 | |
3.10.2 | 2014-06-03 | |
3.10.1 | 2014-06-03 | |
3.10.0 | 2014-06-02 | |
3.9.0 | 2014-05-30 | |
3.8.1 | 2014-05-27 | |
3.8.0 | 2014-05-21 | |
3.7.0 | 2014-05-18 | |
3.6.0 | 2014-05-09 | |
3.5.3 | 2014-05-08 | |
3.5.2 | 2014-04-24 | |
3.5.1 | 2014-03-25 | |
3.5.0 | 2014-03-06 | |
3.4.8 | 2014-01-13 | |
3.4.7 | 2013-12-10 | |
3.4.6 | 2013-12-01 | |
3.4.5 | 2013-11-27 | |
3.4.4 | 2013-10-29 | |
3.4.3 | 2013-10-23 | |
3.4.2 | 2013-10-18 | |
3.4.1 | 2013-10-15 | |
3.4.0 | 2013-09-07 | |
3.3.8 | 2013-09-02 | |
3.3.7 | 2013-08-28 | |
3.3.6 | 2013-08-27 | |
3.3.4 | 2013-07-08 | |
3.3.3 | 2013-07-04 | |
3.3.2 | 2013-07-03 | |
3.3.1 | 2013-06-27 | |
3.3.0 | 2013-06-27 | |
3.2.6 | 2013-06-02 | |
3.2.5 | 2013-05-21 | |
3.2.4 | 2013-05-09 | |
3.2.3 | 2013-05-07 | |
3.2.2 | 2013-05-03 | |
3.2.1 | 2013-04-29 | |
3.2.0 | 2013-04-15 | |
3.1.2 | 2013-04-12 | |
3.1.1 | 2013-04-01 | |
3.1.0 | 2013-01-25 | |
3.0.6 | 2013-01-04 | |
3.0.5 | 2012-12-19 | |
3.0.4 | 2012-12-05 | |
3.0.3 | 2012-11-13 | |
3.0.2 | 2012-11-08 | |
3.0.1 | 2012-11-01 | |
3.0.0 | 2012-10-23 | |
3.0.0rc5 | 2012-09-18 | |
3.0.0rc4 | 2012-08-30 | |
3.0.0rc3 | 2012-08-13 | |
3.0.0rc2 | 2012-08-03 | |
3.0.0rc1 | 2012-07-24 | |
3.0.0beta7 | 2012-07-16 | |
3.0.0beta6 | 2012-07-13 | |
3.0.0beta5 | 2012-07-03 | |
3.0.0beta4 | 2012-06-25 | |
3.0.0beta3 | 2012-06-15 | |
3.0.0beta2 | 2012-06-06 | |
3.0.0beta1 | 2012-06-01 | |
3.0.0alpha5 | 2012-05-30 | |
3.0.0alpha4 | 2012-05-09 | |
3.0.0alpha3 | 2012-05-04 | |
3.0.0alpha2 | 2012-04-26 | |
3.0.0alpha1 | 2012-04-15 | |
2.5.9 | 2012-04-02 | |
2.5.8 | 2012-02-08 | |
2.5.7 | 2012-02-06 | |
2.5.6 | 2012-01-13 | |
2.5.5 | 2012-01-08 | |
2.5.4 | 2012-01-02 | |
2.5.3 | 2011-12-30 | |
2.5.2 | 2011-12-10 | |
2.5.1 | 2011-11-17 | |
2.5.0 | 2011-10-24 | |
2.4.7 | 2011-10-05 | |
2.4.6 | 2011-08-22 | |
2.4.5 | 2011-08-19 | |
2.4.4 | 2011-08-05 | |
2.4.3 | 2011-07-14 | |
2.4.2 | 2011-07-06 | |
2.4.1 | 2011-07-06 | |
2.4.0 | 2011-06-28 | |
2.3.12 | 2011-06-22 | |
2.3.11 | 2011-06-04 | |
2.3.10 | 2011-05-27 | |
2.3.9 | 2011-05-25 | |
2.3.8 | 2011-05-24 | |
2.3.7 | 2011-05-23 | |
2.3.6 | 2011-05-20 | |
2.3.5 | 2011-05-20 | |
2.3.4 | 2011-05-08 | |
2.3.3 | 2011-05-03 | |
2.3.2 | 2011-04-27 | |
2.3.1 | 2011-04-26 | |
2.3.0 | 2011-04-25 | |
2.2.2 | 2011-04-12 | |
2.2.1 | 2011-04-04 | |
2.2.0 | 2011-03-30 | |
2.1.1 | 2011-03-29 | |
2.1.0 | 2011-03-24 | |
2.0.0 | 2011-03-17 | |
2.0.0rc3 | 2011-03-17 | |
2.0.0rc2 | 2011-03-17 | |
2.0.0rc | 2011-03-14 | |
2.0.0beta3 | 2011-03-09 | |
2.0.0beta2 | 2011-03-07 | |
2.0.0beta | 2011-03-03 | |
1.0.8 | 2011-03-01 | |
1.0.7 | 2011-02-07 | |
1.0.6 | 2011-02-07 | |
1.0.5 | 2011-02-05 | |
1.0.4 | 2011-02-05 | |
1.0.3 | 2011-01-13 | |
1.0.2 | 2011-01-10 | |
1.0.1 | 2010-12-29 | |
1.0.0 | 2010-11-16 | |
1.0.0rc4 | 2010-10-14 | |
1.0.0rc3 | 2010-09-20 | |
1.0.0rc2 | 2010-08-17 | |
1.0.0rc | 2010-07-28 | |
1.0.0beta2 | 2010-07-23 | |
1.0.0beta | 2010-07-15 | |
0.14.0 | 2010-06-15 | |
0.13.0 | 2010-06-01 | |
0.12.0 | 2010-05-22 | |
0.11.0 | 2010-05-06 | |
0.10.1 | 2010-05-03 | |
0.10.0 | 2010-04-30 | |
0.9.0 | 2010-04-14 | |
0.8.0 | 2010-03-19 | |
0.7.6 | 2010-03-19 | |
0.7.5 | 2010-03-16 | |
0.7.4 | 2010-03-16 | |
0.7.3 | 2010-03-16 | |
0.7.2 | 2010-03-16 | |
0.7.1 | 2010-03-16 | |
0.7.0 | 2010-03-15 | |
0.6.0 | 2010-03-11 | |
0.5.0 | 2010-03-10 | |
0.4.0 | 2010-02-11 | |
0.3.0 | 2010-02-11 | |
0.2.1 | 2010-02-05 | |
0.2.0 | 2010-02-03 | |
0.1.0 | 2010-02-03 | |
0.0.2 | 2010-01-10 | |
0.0.1 | Intial Release | 2010-01-03 |
a@coolbox:~/workspace$ express --ejs my-app
a@coolbox:~/workspace$ cd my-app
a@coolbox:~/workspace/my-app$ npm install
a@coolbox:~/workspace/my-app$ npm start
You'll need node >= 4
and express 4
for this project. You can get the latest node
distribution from their download page.
Before this tutorial, you should initialize your node project by running
$ npm init
from the command line and filling in the information you want. Note that you can change the info at any time by editing the package.json
file.
Install express
with npm
:
$ npm install --save express
After installing Express as a node module, we can create our entry point. This should be in the same directory as our package.json
$ touch app.js
The folder should have the following directory structure:
<project_root>
|-> app.js
|-> node_modules/
'-> package.json
Open app.js
in your preferred editor and follow these four steps to create your first Express app:
// 1. Import the express library.
import express from 'express';
// 2. Create an Express instance.
const app = express();
// 3. Map a route. Let's map it to "/", so we can visit "[server]/".
app.get('/', function(req, res) {
res.send('Hello World');
});
// 4. Listen on port 8080
app.listen(8080, function() {
console.log('Server is running on port 8080...');
});
From the project directory, we can run our server using the command
$ node app.js
You should see the text
$ Our Express App Server is listening on 8080...
Now, visit http://localhost:8080/
and you'll see the text "Hello World!"
Congratulations, you've created your first Express app!
Express JS is the goto framework for developing Web Applications
, APIs
and almost any kind of Backend
using Node.
To install express
, all you have to do is run the npm command
npm install express --save
And you're done.
create a file app.js
and add this code
// require express
var express = require('express');
var app = express();
// when "/" is opened in url, this function will be called.
app.get('/', function (req, res) {
res.json({ code: 200, message: 'success' });
})
app.listen( 3000, function () {
console.log('Express server running at http://localhost:3000');
});
node app.js
andhttp://localhost:3000
in web browser to see your newly created express server.It's also a good idea to install body-parser
and express-session
along with express
as most of the time you will want to read the data sent in POST
request and manage user sessions.
To get started quickly with Express, you can use the Express generator which will create an application skeleton for you.
First, install it globally with npm:
npm install express-generator -g
You may need to put sudo
before this command if you get a "permission denied" error.
Once the generator is installed, you can start a new project like this:
express my_app
The above command will create a folder called my_app
with a package.json
file, an app.js
file, and a few subfolders like bin
, public
, routes
, views
.
Now navigate to the folder and install the dependencies:
cd first_app
npm install
If you're on Linux or macOS, you can start the app like this:
DEBUG=myapp:* npm start
Or, if you're on Windows:
set DEBUG=myapp:* & npm start
Now, load http://localhost:3000/ in your web browser and you should see the words "Welcome to Express".