2016-02-12 13:10:16 +00:00
[![Express Logo ](https://i.cloudup.com/zfY6lL7eFa-3000x3000.png )](http://expressjs.com/)
2015-07-20 13:42:07 +00:00
Fast, unopinionated, minimalist web framework for [node ](http://nodejs.org ).
2016-02-12 13:10:16 +00:00
[![NPM Version][npm-image]][npm-url]
[![NPM Downloads][downloads-image]][downloads-url]
[![Linux Build][travis-image]][travis-url]
[![Windows Build][appveyor-image]][appveyor-url]
[![Test Coverage][coveralls-image]][coveralls-url]
2015-07-20 13:42:07 +00:00
```js
2016-02-12 13:10:16 +00:00
var express = require('express')
var app = express()
2015-07-20 13:42:07 +00:00
2016-02-12 13:10:16 +00:00
app.get('/', function (req, res) {
res.send('Hello World')
})
2015-07-20 13:42:07 +00:00
2016-02-12 13:10:16 +00:00
app.listen(3000)
2015-07-20 13:42:07 +00:00
```
## Installation
2016-02-12 13:10:16 +00:00
```bash
$ npm install express
```
2015-07-20 13:42:07 +00:00
2016-02-12 13:10:16 +00:00
## Features
2015-07-20 13:42:07 +00:00
2016-02-12 13:10:16 +00:00
* Robust routing
* Focus on high performance
* Super-high test coverage
* HTTP helpers (redirection, caching, etc)
* View system supporting 14+ template engines
* Content negotiation
* Executable for generating applications quickly
2015-07-20 13:42:07 +00:00
2016-02-12 13:10:16 +00:00
## Docs & Community
2015-07-20 13:42:07 +00:00
2017-07-18 11:42:39 +00:00
* [Website and Documentation ](http://expressjs.com/ ) - [[website repo ](https://github.com/expressjs/expressjs.com )]
2016-02-12 13:10:16 +00:00
* [#express ](https://webchat.freenode.net/?channels=express ) on freenode IRC
* [Github Organization ](https://github.com/expressjs ) for Official Middleware & Modules
2017-07-18 11:42:39 +00:00
* Visit the [Wiki ](https://github.com/expressjs/express/wiki )
2016-02-12 13:10:16 +00:00
* [Google Group ](https://groups.google.com/group/express-js ) for discussion
* [Gitter ](https://gitter.im/expressjs/express ) for support and discussion
2015-07-20 13:42:07 +00:00
2017-07-18 11:42:39 +00:00
**PROTIP** Be sure to read [Migrating from 3.x to 4.x ](https://github.com/expressjs/express/wiki/Migrating-from-3.x-to-4.x ) as well as [New features in 4.x ](https://github.com/expressjs/express/wiki/New-features-in-4.x ).
### Security Issues
2015-07-20 13:42:07 +00:00
2016-02-12 13:10:16 +00:00
If you discover a security vulnerability in Express, please see [Security Policies and Procedures ](Security.md ).
2015-07-20 13:42:07 +00:00
2016-02-12 13:10:16 +00:00
## Quick Start
2015-07-20 13:42:07 +00:00
2016-02-12 13:10:16 +00:00
The quickest way to get started with express is to utilize the executable [`express(1)` ](https://github.com/expressjs/generator ) to generate an application as shown below:
2015-07-20 13:42:07 +00:00
2016-02-12 13:10:16 +00:00
Install the executable. The executable's major version will match Express's:
2015-07-20 13:42:07 +00:00
2016-02-12 13:10:16 +00:00
```bash
$ npm install -g express-generator@4
```
2015-07-20 13:42:07 +00:00
2016-02-12 13:10:16 +00:00
Create the app:
2015-07-20 13:42:07 +00:00
2016-02-12 13:10:16 +00:00
```bash
$ express /tmp/foo & & cd /tmp/foo
```
2015-07-20 13:42:07 +00:00
2016-02-12 13:10:16 +00:00
Install dependencies:
2015-07-20 13:42:07 +00:00
2016-02-12 13:10:16 +00:00
```bash
$ npm install
```
2015-07-20 13:42:07 +00:00
2016-02-12 13:10:16 +00:00
Start the server:
2015-07-20 13:42:07 +00:00
2016-02-12 13:10:16 +00:00
```bash
$ npm start
```
2015-07-20 13:42:07 +00:00
2016-02-12 13:10:16 +00:00
## Philosophy
2015-07-20 13:42:07 +00:00
2016-02-12 13:10:16 +00:00
The Express philosophy is to provide small, robust tooling for HTTP servers, making
it a great solution for single page applications, web sites, hybrids, or public
HTTP APIs.
2015-08-14 19:58:05 +00:00
2016-02-12 13:10:16 +00:00
Express does not force you to use any specific ORM or template engine. With support for over
14 template engines via [Consolidate.js ](https://github.com/tj/consolidate.js ),
you can quickly craft your perfect framework.
2015-07-20 13:42:07 +00:00
2016-02-12 13:10:16 +00:00
## Examples
2015-07-20 13:42:07 +00:00
2016-02-12 13:10:16 +00:00
To view the examples, clone the Express repo and install the dependencies:
2015-07-20 13:42:07 +00:00
2016-02-12 13:10:16 +00:00
```bash
$ git clone git://github.com/expressjs/express.git --depth 1
$ cd express
$ npm install
```
2015-08-14 19:58:05 +00:00
2016-02-12 13:10:16 +00:00
Then run whichever example you want:
2015-08-14 19:58:05 +00:00
2016-02-12 13:10:16 +00:00
```bash
$ node examples/content-negotiation
```
2015-08-14 19:58:05 +00:00
2016-02-12 13:10:16 +00:00
## Tests
2015-08-14 19:58:05 +00:00
2016-02-12 13:10:16 +00:00
To run the test suite, first install the dependencies, then run `npm test` :
2015-08-14 19:58:05 +00:00
2016-02-12 13:10:16 +00:00
```bash
$ npm install
2015-07-20 13:42:07 +00:00
$ npm test
```
2016-02-12 13:10:16 +00:00
## People
2015-07-20 13:42:07 +00:00
2016-02-12 13:10:16 +00:00
The original author of Express is [TJ Holowaychuk ](https://github.com/tj ) [![TJ's Gratipay][gratipay-image-visionmedia]][gratipay-url-visionmedia]
2015-07-20 13:42:07 +00:00
2016-02-12 13:10:16 +00:00
The current lead maintainer is [Douglas Christopher Wilson ](https://github.com/dougwilson ) [![Doug's Gratipay][gratipay-image-dougwilson]][gratipay-url-dougwilson]
2015-07-20 13:42:07 +00:00
2016-02-12 13:10:16 +00:00
[List of all contributors ](https://github.com/expressjs/express/graphs/contributors )
2015-08-14 19:58:05 +00:00
2016-02-12 13:10:16 +00:00
## License
2015-07-20 13:42:07 +00:00
2016-02-12 13:10:16 +00:00
[MIT ](LICENSE )
[npm-image]: https://img.shields.io/npm/v/express.svg
[npm-url]: https://npmjs.org/package/express
[downloads-image]: https://img.shields.io/npm/dm/express.svg
[downloads-url]: https://npmjs.org/package/express
[travis-image]: https://img.shields.io/travis/expressjs/express/master.svg?label=linux
[travis-url]: https://travis-ci.org/expressjs/express
[appveyor-image]: https://img.shields.io/appveyor/ci/dougwilson/express/master.svg?label=windows
[appveyor-url]: https://ci.appveyor.com/project/dougwilson/express
[coveralls-image]: https://img.shields.io/coveralls/expressjs/express/master.svg
[coveralls-url]: https://coveralls.io/r/expressjs/express?branch=master
[gratipay-image-visionmedia]: https://img.shields.io/gratipay/visionmedia.svg
[gratipay-url-visionmedia]: https://gratipay.com/visionmedia/
[gratipay-image-dougwilson]: https://img.shields.io/gratipay/dougwilson.svg
[gratipay-url-dougwilson]: https://gratipay.com/dougwilson/