<commit_before>
# Express
      
  Insanely fast (and small) server-side JavaScript web development framework
  built on **node.js** and the **V8 JavaScript engine**.

  * Visit the [Wiki](http://wiki.github.com/visionmedia/express) for documentation
  * Visit the [Google Group](http://groups.google.com/group/express-js) for discussion

## Features (so far)

  * Sexy DSL with robust sinatra-like routing
  * High performance
  * Session support
  * Cache API
  * RESTful HTTP client
  * Mime helpers
  * Redirection helpers
  * Multipart file upload support
  * Test helpers (mock requests etc)
  * Environment based configuration
  * Light-weight JavaScript class implementation via [class.js](http://github.com/visionmedia/class.js/)
  * Persistent flash messages
  * Route passing
  * View support (ejs, haml, sass, etc)
  * Full test coverage
  * Logger plugin with several formats
  * Upload size restrictions
  * Extremely readable specs
  
## Installation

  Install the [Kiwi package manager for nodejs](http://github.com/visionmedia/kiwi)
  and run:
  
      $ kiwi -v install express
      
or

  Install via git clone:
  
      $ git clone git://github.com/visionmedia/express.git && cd express && git submodule update --init

## Performance

  Extensive performance enhancements have not yet been made,
  since we are focusing on the framework it-self at the moment. 
  
  However if you are interested view the premature [benchmarks for Express framework](http://vision-media.ca/resources/nodejs/express-nodejs-web-development-framework-performance).

## Examples

Below is a tiny Express application. View the [Wiki](http://wiki.github.com/visionmedia/express/) for detailed information.

    require.paths.unshift('express/lib')
    require('express')
    
    get('/user', function(){
      this.redirect('/user/' + this.currentUser.id)
    })
    
    get('/user/:id', function(id){
      this.render('user.haml.html', {
        locals: {
          user: this.currentUser,
          usersOnline: Session.store.length()
        }
      })
    })

    run()
    
## Running Tests

Express uses the [JSpec](http://jspec.info) BDD JavaScript testing
framework to write and run elegant spec suites. JSpec is frozen 
to spec/lib and **does not** require separate installation.

    $ make test
    
Run individual suites:

    $ node spec/node.js core
    $ node spec/node.js mime
    $ node spec/node.js routing
    ...
    
The latest release of Express is compatible with node --version:
    v0.1.33
    
EDGE Express we do our best to keep up to date with node's EDGE
    <commit_msg>add cookie support to readme<commit_after>
# Express
      
  Insanely fast (and small) server-side JavaScript web development framework
  built on **node.js** and the **V8 JavaScript engine**.

  * Visit the [Wiki](http://wiki.github.com/visionmedia/express) for documentation
  * Visit the [Google Group](http://groups.google.com/group/express-js) for discussion

## Features (so far)

  * Sexy DSL with robust sinatra-like routing
  * High performance
  * Session support
  * Cache API
  * RESTful HTTP client
  * Mime helpers
  * Redirection helpers
  * Multipart file upload support
  * Test helpers (mock requests etc)
  * Environment based configuration
  * Light-weight JavaScript class implementation via [class.js](http://github.com/visionmedia/class.js/)
  * Persistent flash messages
  * Route passing
  * View support (ejs, haml, sass, etc)
  * Full test coverage
  * Logger plugin with several formats
  * Upload size restrictions
  * Extremely readable specs
  * Cookie support
  
## Installation

  Install the [Kiwi package manager for nodejs](http://github.com/visionmedia/kiwi)
  and run:
  
      $ kiwi -v install express
      
or

  Install via git clone:
  
      $ git clone git://github.com/visionmedia/express.git && cd express && git submodule update --init

## Performance

  Extensive performance enhancements have not yet been made,
  since we are focusing on the framework itself at the moment. 
  
  However if you are interested view the premature [benchmarks for Express framework](http://vision-media.ca/resources/nodejs/express-nodejs-web-development-framework-performance).

## Examples

Below is a tiny Express application. View the [Wiki](http://wiki.github.com/visionmedia/express/) for detailed information.

    require.paths.unshift('express/lib')
    require('express')
    
    get('/user', function(){
      this.redirect('/user/' + this.currentUser.id)
    })
    
    get('/user/:id', function(id){
      this.render('user.haml.html', {
        locals: {
          user: this.currentUser,
          usersOnline: Session.store.length()
        }
      })
    })

    run()
    
## Running Tests

Express uses the [JSpec](http://jspec.info) BDD JavaScript testing
framework to write and run elegant spec suites. JSpec is frozen 
to spec/lib and **does not** require separate installation.

    $ make test
    
Run individual suites:

    $ node spec/node.js core
    $ node spec/node.js mime
    $ node spec/node.js routing
    ...
    
The latest release of Express is compatible with node --version:
    v0.1.90
    
EDGE Express we do our best to keep up to date with node's EDGE
    
{'fraction_non_alphanumeric': 0.09852969257208326, 'fraction_numerical': 0.0019094901661256445, 'mean_word_length': 3.051044083526682, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7333252', 'n_tokens_mistral': 1512, 'n_tokens_neox': 1458, 'n_words': 506}