You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					156 lines
				
				4.5 KiB
			
		
		
			
		
	
	
					156 lines
				
				4.5 KiB
			| 
								 
											4 years ago
										 
									 | 
							
								[](http://expressjs.com/)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  Fast, unopinionated, minimalist web framework for [node](http://nodejs.org).
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  [![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]
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```js
							 | 
						||
| 
								 | 
							
								const express = require('express')
							 | 
						||
| 
								 | 
							
								const app = express()
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								app.get('/', function (req, res) {
							 | 
						||
| 
								 | 
							
								  res.send('Hello World')
							 | 
						||
| 
								 | 
							
								})
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								app.listen(3000)
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## Installation
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								This is a [Node.js](https://nodejs.org/en/) module available through the
							 | 
						||
| 
								 | 
							
								[npm registry](https://www.npmjs.com/).
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Before installing, [download and install Node.js](https://nodejs.org/en/download/).
							 | 
						||
| 
								 | 
							
								Node.js 0.10 or higher is required.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Installation is done using the
							 | 
						||
| 
								 | 
							
								[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally):
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```bash
							 | 
						||
| 
								 | 
							
								$ npm install express
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Follow [our installing guide](http://expressjs.com/en/starter/installing.html)
							 | 
						||
| 
								 | 
							
								for more information.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## Features
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  * 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
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## Docs & Community
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  * [Website and Documentation](http://expressjs.com/) - [[website repo](https://github.com/expressjs/expressjs.com)]
							 | 
						||
| 
								 | 
							
								  * [#express](https://webchat.freenode.net/?channels=express) on freenode IRC
							 | 
						||
| 
								 | 
							
								  * [GitHub Organization](https://github.com/expressjs) for Official Middleware & Modules
							 | 
						||
| 
								 | 
							
								  * Visit the [Wiki](https://github.com/expressjs/express/wiki)
							 | 
						||
| 
								 | 
							
								  * [Google Group](https://groups.google.com/group/express-js) for discussion
							 | 
						||
| 
								 | 
							
								  * [Gitter](https://gitter.im/expressjs/express) for support and discussion
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								**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
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								If you discover a security vulnerability in Express, please see [Security Policies and Procedures](Security.md).
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## Quick Start
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  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:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  Install the executable. The executable's major version will match Express's:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```bash
							 | 
						||
| 
								 | 
							
								$ npm install -g express-generator@4
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  Create the app:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```bash
							 | 
						||
| 
								 | 
							
								$ express /tmp/foo && cd /tmp/foo
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  Install dependencies:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```bash
							 | 
						||
| 
								 | 
							
								$ npm install
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  Start the server:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```bash
							 | 
						||
| 
								 | 
							
								$ npm start
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  View the website at: http://localhost:3000
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## Philosophy
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  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.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  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.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## Examples
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  To view the examples, clone the Express repo and install the dependencies:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```bash
							 | 
						||
| 
								 | 
							
								$ git clone git://github.com/expressjs/express.git --depth 1
							 | 
						||
| 
								 | 
							
								$ cd express
							 | 
						||
| 
								 | 
							
								$ npm install
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  Then run whichever example you want:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```bash
							 | 
						||
| 
								 | 
							
								$ node examples/content-negotiation
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## Tests
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  To run the test suite, first install the dependencies, then run `npm test`:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```bash
							 | 
						||
| 
								 | 
							
								$ npm install
							 | 
						||
| 
								 | 
							
								$ npm test
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## Contributing
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								[Contributing Guide](Contributing.md)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## People
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								The original author of Express is [TJ Holowaychuk](https://github.com/tj)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								The current lead maintainer is [Douglas Christopher Wilson](https://github.com/dougwilson)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								[List of all contributors](https://github.com/expressjs/express/graphs/contributors)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## License
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  [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
							 |