Git Product home page Git Product logo

express's Introduction

Express Logo

Fast, unopinionated, minimalist web framework for node.

NPM Version NPM Install Size NPM Downloads

const express = require('express')
const app = express()

app.get('/', function (req, res) {
  res.send('Hello World')



This is a Node.js module available through the npm registry.

Before installing, download and install Node.js. Node.js 0.10 or higher is required.

If this is a brand new project, make sure to create a package.json first with the npm init command.

Installation is done using the npm install command:

$ npm install express

Follow our installing guide for more information.


  • 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

PROTIP Be sure to read Migrating from 3.x to 4.x as well as New features in 4.x.

Quick Start

The quickest way to get started with express is to utilize the executable express(1) to generate an application as shown below:

Install the executable. The executable's major version will match Express's:

$ npm install -g [email protected]

Create the app:

$ express /tmp/foo && cd /tmp/foo

Install dependencies:

$ npm install

Start the server:

$ npm start

View the website at: http://localhost:3000


The Express philosophy is to provide small, robust tooling for HTTP servers, making it a great solution for single page applications, websites, 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, you can quickly craft your perfect framework.


To view the examples, clone the Express repo and install the dependencies:

$ git clone git:// --depth 1
$ cd express
$ npm install

Then run whichever example you want:

$ node examples/content-negotiation


Linux Build Windows Build Test Coverage

The Express.js project welcomes all constructive contributions. Contributions take many forms, from code for bug fixes and enhancements, to additions and fixes to documentation, additional tests, triaging incoming pull requests and issues, and more!

See the Contributing Guide for more technical details on contributing.

Security Issues

If you discover a security vulnerability in Express, please see Security Policies and Procedures.

Running Tests

To run the test suite, first install the dependencies, then run npm test:

$ npm install
$ npm test


The original author of Express is TJ Holowaychuk

The current lead maintainer is Douglas Christopher Wilson

List of all contributors



express's People


tj avatar dougwilson avatar jonathanong avatar defunctzombie avatar ciaranj avatar slaskis avatar blakeembrey avatar notrab avatar rauchg avatar aheckmann avatar gmethvin avatar Hashen110 avatar riadhchtara avatar 3imed-jaberi avatar aravindvnair99 avatar swrh avatar hiowenluke avatar wesleytodd avatar sorribas avatar kapouer avatar chainhelen avatar davglass avatar Fishrock123 avatar nullfirm avatar nick avatar oliversalzburg avatar crandmck avatar sakateka avatar roark31337 avatar benatkin avatar


Vipin Kumar avatar Eloy Pardo avatar  avatar Tobe Osakwe avatar  avatar rhshah199 avatar Gonzalez Maximiliano avatar Isaiah Moran avatar Justus Sturkenboom avatar Caio Campos avatar  avatar nickfla1 avatar BlueSkyFish avatar mohaiminul Islam avatar  avatar Khongchai Greesuradej avatar Alfonso Graziano avatar TuBowen avatar Mitchell Solomon avatar Arya Raka  avatar Abdo okaily avatar Anshul Paliwal avatar T Ramdhan avatar  avatar Nay Soewin avatar RITESH R. SONAWANE avatar  avatar  avatar Thomas avatar 向阳 avatar Midori avatar Dipak shinde avatar Walid Amriou avatar xiaohong avatar Moein Nemati avatar John M avatar  avatar  avatar Sergey Shapochkin avatar Igor Trindade avatar  avatar Sudharsan Selvaraj avatar Anuarbek Zhakhangir avatar Prabesh Bista avatar  avatar  avatar Naoto Ono avatar Riku Aiba avatar Haci Murat Yaman avatar  avatar tam-nd avatar  avatar João Pedro avatar Alexey Klygin avatar Immcodes avatar Salah avatar Francois Aouad avatar 蓝时律月 avatar Masoud Ghorbanzadeh avatar Andrew Missey avatar David Fauzi avatar Ayush Dedhia avatar Alena Simoshina avatar Mohammed avatar  avatar Tong Duc Dung avatar ev avatar João Amador avatar Kyle L. Davis avatar Chowww avatar  avatar X. Lumi. avatar Jairo Neto avatar Yonhung avatar 金木 avatar  avatar KotikVacia avatar Nabiev Vitaliy avatar Tuan Do avatar taeyoung Ji avatar Simran Kaushik avatar Isis☕Caffe avatar  avatar  avatar Sami Salih İbrahimbaş avatar wood avatar Drew Daniels avatar Eze Elijah avatar Patrick Hart avatar  avatar Martin Muthuri avatar Tong avatar redhat avatar Zac Ong avatar Abhishek Agrawal avatar  avatar lAbYriNth avatar Novel avatar Felix Wang avatar Manthan Ank avatar


Tom McKelvey avatar Aaron Sheriff avatar Rai Escarez avatar Dongkyu Kim avatar fabrizio avatar Aurélien Drouet avatar arden avatar Masafumi Fujiwara avatar Jimmy Lam avatar a2c avatar mifan avatar Rami Bitar avatar azu avatar Pereira Ricardo avatar Facundo Cabrera avatar Will Curran avatar  avatar  avatar Cody Haines avatar  avatar  avatar saksoy avatar Linces Marques avatar Libing Chen avatar Dimitri del Marmol avatar Jeff Fox avatar Henry Huang avatar Douglas Wilson avatar Filipe Abreu avatar Ji Can avatar Abdul Wahid avatar chaosim avatar  avatar Emil Petkov avatar Matt Chadburn avatar Jawf avatar Craig Sharkie avatar  avatar František Hába avatar sharper avatar Gabriel Tudor avatar  avatar ROHITHA DASSANAYAKE avatar Vishnu Atrai avatar Abhi A avatar wangliming avatar Jon Barker avatar Tran Phong Phu avatar  avatar Max Castro avatar flyleong avatar Akhmat Safrudin avatar  avatar Toshiyuki Miyazawa avatar Matteo Landi avatar Venkatakrishnan Ganesh avatar André Philip avatar Brad Walker avatar Michael Russell avatar  avatar Lee Brandt avatar  avatar Kensaku Araga avatar  avatar Chris Cinelli avatar Alex Gadea avatar Stuart Schmukler avatar Adriano Fernandes avatar Stéphane P. Péricat avatar Reggie Zhang avatar evandrix avatar  avatar S.Y. Lee avatar John Whitson avatar ketan avatar Richard Shives avatar Allen Galler avatar Daniel Hamlin avatar Linus Unnebäck avatar Sean McDonnell avatar Jarvis Ao Ieong avatar Slava avatar Dan Stephenson avatar Hengki Sihombing avatar Manuel Islas avatar Yuta Ichikawa avatar goddog avatar 静水之人 avatar Chuck Yang avatar Ash avatar Peter Schmidler avatar Florent Jaby avatar Barney Chen avatar Ram iyer avatar Chandra  Challa avatar allan song avatar yury avatar af4 avatar Jerry Jiang avatar Sharlon Balbalosa avatar

express's Issues

Remove route eval()

With a bit of closure magic we should be able to provide utility functions
to routes without this. Also now we may consider:

get('/user/:id/:operation', function(id, operation){


Module init args

init args in module context.. and hooks in mod context so for example

use(DefaultContentType, 'text/html')

View caching mechanism

only cache in production env,
make sure that contrib view engines have options
to disable their own caching

Async IO

As far as I can tell, you have a synchronous request handling.

Consequently, you will fail at

  • receiving any request body
  • integrating any type of backend

Just letting you know, because I am working on a node.js framework myself and did the exact same mistake at the beginning.

Profiling for views etc

Add some rendering hooks, only really needed
once we have ORM support so we can see what
is impacting performance

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.