Connect is an extensible HTTP server framework for node using "plugins" known as middleware.
varconnect=require('connect')varhttp=require('http')varapp=connect()// gzip/deflate outgoing responsesvarcompression=require('compression')app.use(compression())// store session state in browser cookievarcookieSession=require('cookie-session')app.use(cookieSession({keys: ['secret1','secret2']}))// parse urlencoded request bodies into req.bodyvarbodyParser=require('body-parser')app.use(bodyParser.urlencoded())// respond to all requestsapp.use(function(req,res){res.end('Hello from Connect!\n');})//create node.js http server and listen on porthttp.createServer(app).listen(3000)Connect is a simple framework to glue together various "middleware" to handle requests.
$ npm install connectThe main component is a Connect "app". This will store all the middleware added and is, itself, a function.
varapp=connect();The core of Connect is "using" middleware. Middleware are added as a "stack" where incoming requests will execute each middleware one-by-one until a middleware does not call next() within it.
app.use(functionmiddleware1(req,res,next){// middleware 1next();});app.use(functionmiddleware2(req,res,next){// middleware 2next();});The .use() method also takes an optional path string that is matched against the beginning of the incoming request URL. This allows for basic routing.
app.use('/foo',functionfooMiddleware(req,res,next){// req.url starts with "/foo"next();});app.use('/bar',functionbarMiddleware(req,res,next){// req.url starts with "/bar"next();});There are special cases of "error-handling" middleware. There are middleware where the function takes exactly 4 arguments. Errors that occur in the middleware added before the error middleware will invoke this middleware when errors occur.
app.use(functiononerror(err,req,res,next){// an error occurred!});The last step is to actually use the Connect app in a server. The .listen() method is a convenience to start a HTTP server.
varserver=app.listen(port);The app itself is really just a function with three arguments, so it can also be handed to .createServer() in Node.js.
varserver=http.createServer(app);These middleware and libraries are officially supported by the Connect/Express team:
- body-parser - previous
bodyParser,json, andurlencoded. You may also be interested in: - compression - previously
compress - connect-timeout - previously
timeout - cookie-parser - previously
cookieParser - cookie-session - previously
cookieSession - csurf - previously
csrf - errorhandler - previously
error-handler - express-session - previously
session - method-override - previously
method-override - morgan - previously
logger - response-time - previously
response-time - serve-favicon - previously
favicon - serve-index - previously
directory - serve-static - previously
static - vhost - previously
vhost
Most of these are exact ports of their Connect 2.x equivalents. The primary exception is cookie-session.
Some middleware previously included with Connect are no longer supported by the Connect/Express team, are replaced by an alternative module, or should be superseded by a better module. Use one of these alternatives instead:
cookieParserlimitmultipartquerystaticCache
Checkout http-framework for many other compatible middleware!
npm install npm testhttps://github.com/senchalabs/connect/graphs/contributors
- Connect
< 1.x- node0.2 - Connect
1.x- node0.4 - Connect
< 2.8- node0.6 - Connect
>= 2.8 < 3- node0.8 - Connect
>= 3- node0.10