Node.js框架、库、资源集合:Awesome Node.js
Application Servers
Application Server is an environment to run and manage multiple applications.
- Impress - Impressive multipurpose scalable Application Server optimized for high load API and web applications.
Async Control Flow
Libraries that help you manage asyncronous control flow and avoid callback hell.
- Callback-based:
- Async - Utility module which provides straight-forward, powerful functions for working with asynchronous JavaScript.
- each-async - Async concurrent iterator like forEach.
- node-seq - Chainable asynchronous flow control for node.js with sequential and parallel primitives and pipeline-style error handling.
- Promise-based (Promises/A+):
- Bluebird - Bluebird is a fully featured promise library with focus on innovative features and performance.
- Q - Full-featured promise library with large API covering any situation you may encounter.
- RSVP.js - Lightweight, but still compliant, promise library.
- when.js - Rock solid, battle tested promise library. </ul> </li>
- Fibers-base (node-fibers):
- asyncawait - Inspired by C# async/await feature, implementation of the same pattern using fibers. </ul> </li>
- Generator-based:
- Co - Generator based flow-control goodness for nodejs and the browser.
- suspend - Generator-based control flow that plays nice with callbacks, promises, and thunks. </ul> </li> </ul>
- everyauth - Authentication and authorization (password, 非死book, & more) for your Connect and Express apps.
- ldapjs - Pure JavaScript, from-scratch framework for implementing LDAP clients and servers.
- Lockit - Full featured authentication solution for Express.
- oauth-signature-js - OAuth 1.0a signature generator
- PassportJS - Simple authentication middleware framework.
- passwordless - Token-based authentication middleware for Express allowing authentication without passwords.
- Browserify - Browserify lets you require('modules') in the browser by bundling up all of your dependencies.
- Grunt.js - A task runner to ease epetitive tasks like unit testing, compilation and so on.
- Gulp.js - A streaming build system which use of streams and code-over-configuration.
- Nodemon - A dev utility that monitor any changes in source and automatically restart server.
- BinaryJS - BinaryJS is bidrectional realtime binary data with binary websockets
- Primus - An abstraction layer for real-time frameworks to prevent module lock-in.
- Socket.IO - Websocket framework for Node and Javascript.
- SocketCluster - Scalable HTTP + WebSocket engine which can run on multiple CPU cores.
- SockJS - Websocket emulation.
- Straw - Real-time dataflow framework.
- Calipso - Calipso is a simple CMS, built along similar themes to Drupal and Wordpress.
- KeystoneJS - Node.js CMS and web application platform built on Express and MongoDB.
- Node-mongodb-native - Mongo DB Native NodeJS Driver.
- Node-mysql - A pure node.js JavaScript Client implementing the MySql protocol.
- Node-redis - Redis Driver, use hideredis for native parser, and checkout then-redis for a Promise-based API.
- cf-node-debug - Proxy to aid in debugging node running on a PaaS.
- debug - Tiny debugging utility.
- jstrace - Dynamic tracing for JavaScript, similar to dtrace, ktap etc.
- longjohn - Longer stack traces for Node.
- node-inspector - Node.js debugger based on Blink Developer Tools.
- Nodev - Tool for easier debugging based on nodemon and node-inspector.
- stackman - Enhance an error stacktrace with code excerpts and other goodies.
- Theseus - A new type of JavaScript debugger featuring real-time code coverage, retroactive inspection and asynchronous call tree.
- TraceGL - Transforms your JavaScript, injecting monitoring code that produces a log of everything that happens.
- TypesJs - Easy type checking, for Node & browsers.
- vstream - Instrumentable streams mix-ins to inspect a pipeline of streams.
- Docco - Docco is a quick-and-dirty documentation generator, written in Literate CoffeeScript.
- dox - JavaScript documentation generator for node using markdown and jsdoc.
- Groc - Documentation generation, in the spirit of literate programming.
- n - Node version management.
- nave - Virtual Environments for Node.
- nodeenv - Virtual environment for Node.js & integrator with virtualenv.
- nvm - Node Version Manager (does not require prior installation of node).
- PDFKit - A JavaScript PDF generation library for Node and browser.
- express-validator - An express.js middleware for node-validator.
- node-validator - A simple string validation and sanitization.
- Atom - The hackable editor by GitHub
- Brackets - An open source code editor for the web, written in JavaScript, HTML and CSS.
- Cloud Commander - Web file manager. Has editor and console. Allows you to develop web applications, sites etc.
- Cloud9 - Web editor with collaboration tools.
- CmdEr - Not really and IDE, but a great "lovely console emulator package for Windows"
- Enide - Node Eclipse IDE with Nodeclipse plugin.
- InteliJIDEA - Fast Node plugin for InteliJ.
- Notepad++ - Notepad++ is a free source code editor and Notepad replacement that supports several languages.
- Visual Studio - With Node.js Tools for Visual Studio (Supports editing, IntelliSense, profiling, npm, TypeScript, debugging locally and remotely on Windows/MacOS/Linux)
- Webstorm - "Create great websites and applications in a great IDE. The best JavaScript IDE and HTML editor is at your service."
- Bunyan - A simple and fast JSON logging module for node.js services.
- caterpillar - A logging system that can log and pipe the output off to different locations.
- intel - A comprehensive logging library (handlers, filters, formatters, console injection).
- Log.io - Real time logging facility on the browser.
- tracer - A powerful and customizable logging library for node.js.
- winston - A multi-transport async logging library.
- Mongoose - Almost an ORM for mongodb.
- Node-orm2 - Another Relational Object Mapper.
- Sequelize - Sequelize library provides easy access to MySQL, MariaDB, SQLite or PostgreSQL databases.
- Waterline - Datastore-agnostic tool that dramatically simplifies interaction with one or more databases.
- Duo - A next-generation package manager for the front-end.
- npm - Default package manager. Installs, publishes and manages node programs.
- Bottleneck - A powerful rate limiter that makes throttling easy.
- Heimdall - REST API Guardian for Express.
- Node-restify - A node.js module built specifically to build correct REST web services.
- Sails - MVC framework which generates a RESTful JSON API.
- BitcoinJS - Clean, readable, proven Bitcoin library.
- Breach - Modular and hackable browser written in JavaScript.
- dat - Real-time replication and versioning for data sets.
- ipfs - Distributed file system that seeks to connect all computing devices with the same system of files.
- js-git - JavaScript implementation of Git.
- NodeOS - The first operating system powered by npm.
- PDFKit - PDF generation library.
- peercast - Stream a torrent video to Chromecast.
- peerflix - Streaming torrent client.
- peerwiki - All of Wikipedia on BitTorrent.
- turf - Modular geospatial processing and analysis engine.
- webtorrent - Streaming torrent client for Node.js and the browser.
- ECT - "Fastest JavaScript template engine with embedded CoffeeScript syntax" as they say (benchmark proof).
- handlebars.js - A superset of Mustache templates which adds powerful features like helpers and more advanced blocks.
- hogan.js - 推ter's small, fast, phase-separated compiler for Mustache templates.
- Jade - Handful node template engine.
- nunjucks - A powerful templating engine with inheritance, asynchronous control, and more (jinja2 inspired).
- Swig - A simple, powerful, and extendable JavaScript Template Engine.
- chai - BDD / TDD assertion framework for node.js and the browser that can be paired with any testing framework.
- Concrete - Continuous integration server.
- Expresso - TDD framework for Node.
- Jasmine - Simple Behavioral tests for Node and Javascript.
- Jezebel - A REPL and continuous test runner for Node.js Jasmine tests.
- mocha - Mocha is a feature-rich JavaScript test framework running on node.js and the browser, making asynchronous testing simple and fun.
- Mochify - TDD with Browserify, Mocha, PhantomJS and WebDriver.
- NodeUnit - Simple syntax unit test tool.
- ready.js - Continuous javascript integration tool.
- should.js - BDD style assertions for node.js -- test framework agnostic.
- sinon - Standalone test spies, stubs and mocks for JavaScript.
- tape - tap-producing test harness for node and browsers.
- blessed - A curses-like library for node.js.
- chalk - Terminal string styling done right
- cli-spinner - A simple spinner for node cli.
- cli-table - Pretty unicode tables for the CLI with Node.JS
- cli - Rapidly build command line apps with node.
- colors.js - get colors in your node.js console like what.
- commander.js - The complete solution for node.js command-line interfaces, inspired by Ruby's commander.
- configstore - Easily load and persist config without having to think about where and how.
- Inquirer - A collection of common interactive command line user interfaces. Ask questions, parsing, validating answers, managing hierarchical prompts and providing error feedback.
- log-symbols - Colored symbols for various log levels.https://github.com/sindresorhus/log-symbols
- minimist - Simple module for command line arguments parsing.
- nomnom - Option parser for node with generated usage and commands.
- read - For reading user input from stdin.
- terminal-menu - retro ansi terminal menus for serious 80s technicolor business.
- text-table - generate borderless text table strings suitable for printing to stdout.
- Derby - MVC framework making it easy to write realtime, collaborative applications that run in both Node.js and browsers.
- Derby-awesome - A collection of awesome derby components
- Express - A minimal and flexible node.js web application framework.
- Flatiron - An adaptable framework for building modern web applications.
- Hapi - A rich framework for building applications and services.
- HuntJS - event driven framework for building clustered webservers, telnet and background applications with mongoose or sequilize as data storage.
- Interfake - Rapid prototyping framework for making mock HTTP APIs, with a Node, command-line and HTTP interface.
- Koa - A framework which aims to be a smaller, more expressive, and more robust foundation for web applications.
- LoopBack - Powerful Node.js framework for creating APIs and easily connecting to backend data sources.
- Meteor - A platform that has strong features such as live page update, sync and hopt code pushes.
- Restify - A node framework built specifically to enable you to build correct REST web services.
- SailsJS - An MVC web framework with a modern twist, supporting WebSockets, streams, and a data-driven API.
- Totaljs - Friendly responsive design web application framework for node.
- Catberry - Framework with Flux architecture, isomorphic web-components and progressive rendering. </ul>
- Calipso - Calipso is a simple CMS, built along similar themes to Drupal and Wordpress.
- KeystoneJS - Node.js CMS and web application platform built on Express and MongoDB.
- agenda - Lightweight job scheduling on MongoDB.
- atom-shell - Cross-platform desktop application shell.
- cheerio - Fast, flexible, and lean implementation of core jQuery designed specifically for the server.
- common-errors - Common error classes and utility functions.
- Faker.js - Generate massive amounts of fake data.
- Github Linker - Chrome extension that linkifies dependencies in package.json on GitHub.
- lazy-req - Require modules lazily.
- multiline - Multiline strings in JavaScript.
- nan - A header file filled with macro and utility goodness for making add-on development for across Node.js versions easier.
- Node-Bell - Real-time anomalies detection for periodic time series.
- node-pre-gyp - Makes it easy to publish and install Node.js C++ addons from binaries.
- opencv - Bindings for OpenCV. The defacto computer vision library.
- opn - Opens stuff like websites, files, executables.
- require-uncached - Require a module bypassing the cache.
- semver - semver parser.
- shelljs - Portable Unix shell commands.
- ssh2 - An SSH2 client module.
- stringify-object - Stringify an object/array like JSON.stringify just without all the double-quotes.
- strip-bom - Strip UTF-8 byte order mark (BOM) from a string/buffer/stream.
- webworker-threads - Lightweight Web Worker API implementation with native threads.
- browserify-handbook - The definitive guide for browserify.
- module-best-practices - Some good practices when writing new npm modules.
- Nodeschool - Learn Node.js with interactive lessons.
- stream-handbook - How to write Node.js programs with streams.
- The Art of Node - An introduction to Node.js.
- Mastering Node
- Mixu's Node book
- Node.js in Action
- Practical Node.js: Building Real-World Scalable Web Apps
- Professional Node.js: Building Javascript Based Scalable Software
- Web Development with Node and Express
- HowToNode - Teaching how to do various tasks in Node.js as well as teach fundamental concepts that are needed to write effective code.
- Node.js blog
Authentication and OAuth
Libraries for implementing authentications schemes.
Build Tools
Libraries for building and task running
Communication
Content Management System
Database Drivers
Libraries for connecting and operating databases
Debugging Tools
Tools for debugging Node applications
Documentation
Libraries for generating project documentation.
Environment Management
Libraries for Node version and environment management.
Files and MIME Type Manipulation
Forms
Libraries for deal with forms and form data
Integrated Development Environments
IDEs and Editors for development
Logging
Tools for generating and working with log files.
ORM
Libraries that implement Object-Relational Mapping or datamapping techniques.
Package Management
Libraries for package and dependency management.
Rate Limiting
Libraries that help restrict the frequency of certain actions.
RESTful API
Libraries for developing RESTful APIs.
Science
Things some awesome crazy people are doing!
Templating
Libraries and tools for templating and lexing.
Testing
Testing frameworks.
Tools for building CLIs
Libraries and tools which support you by building Command-Line Interfaces.
Web Frameworks
Web development frameworks.
Content Management System
Miscellaneous
Miscellaneous Tools which doesn't fit to the other categories.
Tutorials
Books
Blogs