受到精彩的php 和 精彩的python 的启发,整理了精彩的Node.js的框架,库以及资源的列表。
欢迎提交各种相关资源!让我们一起来打造最精彩的Node资源列表!
目录:
Node虚拟机
Node版本管理
*n vs nvm个人喜欢:n
- Atom Shell - 可以使用nodejs编写桌面应用,并且跨平台,支持mac,linux,windows,与node-webkit的区别在于,前者启动时是启动js文件,后者启动html文件,前者可控性更高。
node-webkit案例:LightTable atom-shell案例:Atom
开发用的IDE和编辑器
- Webstorm - 最好的Nodejs编辑器,有的话就不用看下面这些了。
- Visual Studio - 需要安装插件 Node.js Tools for Visual Studio (支持编辑,智能感知,分析,npm,TypeScript,本地调试以及Windows/MacOS/Linux上的远程调试)。
- Enide - 带Nodeclipse插件的Node Eclipse IDE。
- InteliJIDEA - InteliJ的Node.js插件,和Webstorm同一家公司出品。
- Atom - Github出品的可自定义编辑器(用Atom Shell开发的)。
- Brackets - 使用JavaScript,HTML,CSS编写的开源web代码编辑器。
- Cloud9 - 带协作工具的web编辑器。
- Notepad++ - Notepad++就不用解释了,能用这个写代码的都明白这是什么。
- CmdEr - 不是IDE,但是Windows上的控制台模拟器(用这个不如安装Github的git shell)。
- Cloud Commander - Web文件管理。有编辑器和控制台。可以让你开发Web应用,站点等。
项目文档生成库
- Docco - Docco是一个快速但是丑陋的文档生成器, 由Literate CoffeeScript编写。
- Groc - 以文学编程为宗旨的文档生成器。
- dox - JavaScript文档生成器,使用markdown和jsdoc生成node文档。
包和依赖管理库
生成和任务执行工具
后端Grunt前端Bower,近乎标配,但是google的web starter kit更推荐gulp,因为gulp基于js,grunt基于json,孰优孰劣,可见一斑
- Nodemon - 监控代码变化,自动重启服务器的开发工具。
- Browserify - Browserify让你可以在浏览器中使用require('modules')来打包你的依赖。
- Socket.IO - Node和Javascript的Websocket框架。
- SockJS - Websocket模拟器.
- Primus - 阻止模块锁住的实时框架抽象层。
- BinaryJS - BinaryJS是处理实时二进制数据的二进制webscoket。
调试Node应用的工具
- node-inspector - 基于Blink开发工具的Node.js调试器。
- longjohn - Node的长堆栈跟踪器。
- TypesJs - Node和浏览器的简易类型检查。
- Nodev - 基于nodemon和node-inspector的更方便的调试工具。
- cf-node-debug - 用来帮助调试运行在Paas上的node的代理。
生成和管理日志的工具
- winston 好用的日志生成库。
- caterpillar - 可以记录日志和输出到不同目标的日志系统。
- tracer - Node.js的强力和可自定义日志库。
- Log.io - 浏览器上的实时日志工具。
- Bunyan - Node.js服务的简单高效JSON日志模块。
连接和操作数据库的库
- Node-mysql - 连接mysql的不二选择。
- mongojs - 连接mongodb的不二选择,mongoose过于复杂,完全没必要。这个库是基于Node-mongodb-native的封装。
- Node-redis - Redis驱动,原生解析器用hideredis,基于Promise的API用 then-redis。
实现ORM或datamapping技术的库
- Sequelize - 方便地访问MySQL, MariaDB, SQLite 以及PostgreSQL数据库。
- Node-orm2 - 另一个ORM。
- Mongoose - mongodb的ORM。
- Waterline - 简化多个数据库的交互。
Web开发框架
- Express - 小而全的Nodejs web开发框架。主流!但原作者跑去写Go了。
- Flatiron - 编写现代化web应用的可适配框架。
- Koa - 旨在打造更小,更便捷,更高扩展的web应用框架。Express原班人马打造,下一代框架。
- Totaljs - 高响应的node web应用框架。
- Meteor - 实时web应用框架。获得1120万美元风投。未来的框架。
- Derby - 方便编写实时应用的MVC框架。
- Derby-awesome - 好用的Derby组件。
- HuntJS - 事件驱动框架。
- Pomelo - 网易出品的Nodejs游戏开发框架。
开发RESTful API的库
- Hapi - Restful API的快速框架。
- hapi-swagger生成api文档。
- Sails - 生成RESTful JSON API的MVC框架。
- Node-restify - 生成REST web服务的node模块。
- Heimdall - Express的REST API插件。
运行和管理多个应用
- Calipso - 简易CMS,类似Drupal和Wordpress的皮肤。
- KeystoneJS - Node.js CMS,由Express和MongoDB构建的Web应用平台。
处理表单和表单数据的库
- node-validator - 简易字符串表单验证库。
- express-validator - Express表单验证中间件。
- PDFKit - Node和浏览器的JavaScript PDF生成库。
实现验证的库
- PassportJS - 简易验证中间件库。
- ldapjs - 纯JavaScript框架,用来实现LDAP客户端和服务端。
- oauth-signature-js - OAuth 1.0a签名生成器。
- Lockit - Express的全功能验证方案。
模版和词法工具
命令行接口生成工具
- Inquirer - 常用交互命令行用户接口集合。提问,解析,验证回答,管理提示符以及提供错误反馈。
- commander.js - 受Ruby的commander启发的,node.js命令行接口的完整解决方案。
- cli - 可用node快速生成命令行应用。
- cli-table - CLI的美化unicode表格。
- blessed - 一个类似魔咒的node.js类库。
- chalk - 终端字符串样式。
- minimist - 命令行参数解析简易模块。
- read - 读取用户stdin输入。
- colors.js - node.js控制台颜色。
- configstore - 简易读取,存储配置。
- blessed - 一个类似魔咒的node.js类库。
- log-symbols - 不同日志层级不同颜色表示。https://github.com/sindresorhus/log-symbols
- terminal-menu - ansi终端菜单。
- cli-spinner - 简易的node cli插件。
- text-table - 生成无边框的文本表格字符串用来输出。
管理异步控制,避免回调地狱
- 基于回调:
- 基于Promise (Promises/A+):
- 基于Fibers (node-fibers):
- asyncawait - 参考C#的async/await功能,实现相同的模式。
- 基于生成器:
- Co - 基于生成器的流程控制。
Libraries that help restrict the frequency of certain actions.
- Bottleneck - A powerful rate limiter that makes throttling easy.
测试框架
- mocha - Mocha是一个运行在node.js上的功能齐全的JavaScript测试框架,使异步测试方便而有趣。
- tape - 为node和浏览器定制的测试。
- should.js - nodejs的BDD风格断言。
- chai - BDD / TDD 断言框架,可与任何其它框架配套使用。
- sinon - 独立的Javascript测试间谍, stub以及mock。
- Jasmine - 简易的Node和Javascript的行为测试。
- Expresso - Node的TDD框架。
- NodeUnit - 简单语法的单元测试工具。
- Concrete - CI服务。
- ready.js - javascript CI工具。
- Jezebel - Jasmine测试的REPL以及持续集成测试工具。
- Github Linker - Chrome扩展,提供github上package.json的依赖库的超链接。
可以在awesome-awesome 以及 awesome-awesomeness 中找到其它精彩列表。
欢迎您提出宝贵意见和建议!