这篇文章与大家分享优秀的 Node.js 中间件模块。Node 是一个服务器端 JavaScript 解释器,它将改变服务器应该如何工作的概念。它的目标是帮助程序员构建高度可伸缩的应用程序,编写能够处理数万条同时连接到一个(只有一个)物理机的连接代码。
JSGI
- commonlogger – A logger of HTTP requests.
- compact – Join and compress frontend javascript.
- compress – Gzip compresses (using node-compress) the response when appropriate based on request headers.
- conditional – Handles conditional HTTP requests (If-Modified-Since, etc.)
- contentlength – Sets Content-Length header.
- csrf – Checks HTTP request for possible cross-site request forgery, flags dangerous requests.
- extension – Transforms .extension to a RESTful Accept header
- head – Handles HEAD requests (stripping body).
- http-params – Converts HTTP parameters http- to headers.
- media – Performs content type negotiation (per RFC2616) delegating to appropriate media handler.
- redirect – Redirects to other URLs
- rewriter – Rewrites defined paths to other paths.
- routes – Simple RegExp based router
- session – Session manager with pluggable storage handling
- static – Static file handler using asynchronous streaming.
- transporter – Share modules with browser, works RequireJS and Yabble
- urlmap – Maps to different apps by path/URL
- xsite – Handles JSONP, window.name, and cross-origin XHR (CORS).
Connect
- connect-jade-static – Serving jade files as static html
- aspa-express – Simple, dependency-free middleware for serving assets packaged with aspa.
- browserify-middleware – Middleware for serving up node.js code with requires to the client.
- bundle-up — A simple asset manager middleware for managing css and js files.
- client-certificate-auth – Basic TLS/SSL client certificate authentication
- connect_facebook – Facebook session support for Connect
- connect_json – Support for parsing JSON requests and sending JSON responses in Connect
- connect-airbrake — Airbrake error reporting auto-setup middleware
- connect-assetmanager – Asset manager for Connect for handling CSS/JS files
- connect-assets – Compiled CSS/JS asset pipeline inspired by Rails 3.1
- connect-auth — Connect authentication middleware, provides out-of-the-box implementations of HTTP (Basic & Digest), Twitter, Facebook, BitBucket, Janrain, Yahoo, Sina, Google, OAuth (1.0 server), Github and a couple of others….
- connect-compiler — Development middleware to dynamically recompile derived files at serve-time.
- connect-dojo — Connect middleware exposing the Dojo Toolkit
- connect-domain — Asynchronous error handler for Connect
- connect-force-domain — force all visitors onto a single domain
- connect-gridfs — GridFS file server for Connect
- connect-http-signature — middleware wrapper for Joyent’s HTTP Signature reference implementation
- connect-proxy — Retrieve originating ip/host values when proxying to your connect app
- connect-roles — Dynamic roles based authorization for connect/express, designed to work well with passport and everyauth.
- connect-rpx – Use RPX with Node.js and Connect
- cookie-sessions — Secure cookie-based session store
- dispatch — Regular expression URL dispatcher
- everyauth — Connect authentication and authorization middleware, modular, configurable, supporting password, OpenId, Google, OAuth, Twitter, LinkedIn, Yahoo, Readability, Dropbox, Justin.tv, Vimeo, Tumblr, OAuth2, Facebook, GitHub, Instagram, Foursquare, Box.net, LDAP
- express-chromeframe — Dead simple middleware to enable chromeframe on connect/express applications.
- express-errors — Simple error handling
- facebook-wrapper — Basic wrapper to the Facebook API, designed to work with Connect and Express
- form2json — Decoder for form-urlencoded data that supports arrays of nested objects
- formaline – full-featured module for handling form POSTs/PUTs (multipart/form-data, application/x-www-form-urlencoded ) and fast parsing of file uploads, it speaks JSON and it is also ready for use with middlewares like connect.
- http-accept — Connect compatible middleware that parses HTTP Accept header fields
- merge-js — Simple connect middleware for merging multiple js files and uglifying the result.
- mincer — direct Sprockets assets manager port, with middleware for connect/express
- minj — Serve minified javascript files with Connect/Express
- monomi — Provides tools for handling tablet, touch, and mobile browsers
- node_signedcookies — Extends Express’s cookieParser() to read/write signed cookies.
- node-facebook-session-cookie — eats facebook cookies from client FB.login() and makes the session available as req.fb_session
- passport — Simple, modular, and unobtrusive authentication framework for Connect and Express.
- pound — Pound is an high-level interface for Piler – The Awesome Asset Manager for Node.js
- quip — Chainable HTTP response API
- resource-router — A resource-oriented router to replace the default routing in express
- resty — Quickly and simply build REST APIs with this connect middleware
- session-web-sockets — Pass session to (Socket.IO-node) in a secure manner. Originally forked from bmeck/session-web-sockets
- session.js — super simple session middleware for node.js, even has optional “magic” sessions which monkey patch the httpServer with one line!
- Shrinkroute – Named routes for Express. Helps you in achieving DRY routes!
- trust-reverse-proxy – Trust (SSL) connections coming from (a) specific reverse prox(y)(ies)
Other middleware
- bouncy — bounce HTTP requests around for load balancing or as an HTTP host router
- buffet — Performance-oriented static file server & middleware
- dota2api — Dota2 api wrapper written in node.js
- eventpipe — Provides an Event Pipe with the same API as node.js’ EventEmitter
- exedra — Express routes & functions loader
- express-debug — Express middleware that provides a debugging/object browser panel injected into your application.
- express-couch-proxy — CouchDB reverse proxy middleware for Express
- express-twitter — Twitter-specific OAuth support
- googleclientlogin — Log in to Google services using CllientLogin method
- http-auth — Node.js package for HTTP basic and digest access authentication.
- http-auth2 — HTTP basic authentication that supports multiple logins.
- http-proxy-selective — Proxy server replace some remote static files with local ones
- middler — A middleware runner which can itself function as middleware, with routing
- node-evented — Extended EventEmitter
- node-file-cache – Very small file cache for node.js http server.
- node-force-domain — Force multiple domains to redirect (301) to a default one in your Express project.
- Node-Http-Rewrite-Proxy — This module proxies and rewrites HTTP requests of all types. For this you can, if you want, use regular expressions.
- node-reverse-proxy — A reverse proxy which forwards incoming HTTP requests to multiple back-end HTTP servers based upon HTTP Host header.
- node-varnish — Connector for the Varnish cache telnet management protocol
- notp — NodeJS One Time Password authentication, compatible with Google Authenticator
- onion — Simple and flexible middleware stack that enables you to add a middleware layer to just about anything
- protobuf_for_node — In-process JS-to-C++ communication using protocol buffer services
- protobuf — A fork of protobuf_for_node with an npm package.
- proxy-tamper — A proxy server that allows for the tampering of requests and responses.
- socket-logger — JSON-parsable logs for Socket.IO that can push log messages to a client over Socket.IO.
- subproxy – subdomain proxy (for example to proxy www.google.com with www.google.com.localhost)
- proxima – HTTP/TLS(HTTPS) reverse proxy forwards incoming requests to upstream servers based on Host header or SNI host hint.
- express-cors – Simple middleware for adding CORS functionality to your expressjs app.