0%

Node.js 框架 & 资源

nodeframework 上的框架分类

Node.js 框架

框架的定义

  • API 框架 —— 用于搭建 Web API 的库,有协助组织程序结构的框架支持。LoopBack 将自己定义为这类框架。
  • HTTP 服务器库 —— 所有基于 Express 的项目都可以归为这一类,包括 Koa 和 Kraken.js 。这些库帮我们围绕 HTTP 动词和路由搭建程序。
  • HTTP 服务器框架 —— 用来搭建模块化 HTTP 服务器的框架。hapi 就是这种框架。
  • Web MVC 框架 —— 模型 - 视图 - 控制器框架,Sail.js 就是这种框架。
  • 全栈框架 —— 这些框架在服务器端和浏览器上用的都是 JavaScript,并且两端可以共享代码。这被称为同构代码。 DerbyJS 是个全栈 MVC 框架。

Koa

库类别 HTTP 服务器库
功能特性 基于生成器的中间件,请求 / 响应模型
建议应用 轻型 Web 程序、不严格的 HTTP API、单页 Web 程序
插件架构 中间件
文档 https://koa.bootcss.com/
热门程度 GitHub 24198 ⭐️
授权许可 MIT

Koa 轻便、极简,在中间件中使用 ES2015 生成器语法。适合依赖外部 Web API 的单页 Web 程序。

Kraken

库类别 HTTP 服务器库
功能特性 对项目结构要求严格、模型、模版(Dust)、安全强化(Lusca)、配置管理、国际化
建议应用 企业 Web 程序
插件架构 Express 中间件
文档 https://www.kraken.com/help/api
热门程度 GitHub 4698 ⭐️
授权许可 Apache 2.0

Kraken 是基于 Express 的,添加了安全特性。可以用于 MVC。

hapi

库类别 HTTP 服务器库
功能特性 高层服务器容器抽象,安全的头部信息
建议应用 单页 Web 程序、HTTP API
插件架构 hapi 插件
文档 https://hapijs.com/
热门程度 GitHub 10000 ⭐️
授权许可 BSD 3

hapi 的重点是 HTTP 服务器和路由。适合由很多小服务器组成的轻便后台。

Sails.js

库类别 MVC 框架
功能特性 有支持数据库的 ORM,生成 REST API,WebSocket
建议应用 Rails 风格的 MVC 程序
插件架构 Express 中间件
文档 http://sailsjs.org/
热门程度 GitHub 19976 ⭐️
授权许可 BSD 3

Sails.js 是 Rails/Django 风格的 MVC 框架。有 ORM 和模板系统。

DerbyJS

库类别 全栈框架
功能特性 有支持数据库的 ORM(Racer),同构
建议应用 有服务器端支持的单页 Web 程序
插件架构 DerbyJS 插件
文档 https://derbyjs.com/
热门程度 GitHub 4358 ⭐️
授权许可 MIT

DerbyJS 是个同构框架,适合实时程序。

Flatiron.js

库类别 模块化 MVC 框架
功能特性 数据库管理层(Resourceful),解耦的可重用模块
建议应用 轻量的 MVC 程序,在其他框架中使用 Flatiron 模块
插件架构 Broadway 插件 API
文档 https://github.com/flatiron/flatiron
热门程度 GitHub 1338 ⭐️
授权许可 MIT

Flatiron 是一组解耦的模块,既可以当作 Web MVC 框架来用,也可以当作更轻便的 Express 库。 Flatiron 跟 Connect 中间件是兼容的。

LoopBack

库类别 API 框架
功能特性 ORM、API 用户界面、WebScoket、客户端 SDK(包括 iOS)
建议应用 支持多客户端的 API(移动端、桌面端、Web)
插件架构 Express 中间件
文档 https://loopback.io/
热门程度 GitHub 12092 ⭐️
授权许可 双许可:MIT 和 StrongLoop 认购协议

LoopBack 帮我们省掉了写套路化代码的工作。它可以快速生成带有数据库支持的 REST API,并有个 API 管理界面。

如何选择 Node 框架

选择 Node 框架

提升应用安全性的 Node 模块

  • Lusca:krakenjs 中的一个安全模块。
  • Helmet:通过设置各种 HTTP 头来帮助您保护 Express 应用程序。
  • nsp 模块:审计 Node 应用的 package.jsonnpm- shrinkwrap.json 文件,检查有没有已知漏洞。

流行的 npm 包

  • Prettier—— 让你可以专注于你正在写的代码,而不是去关心代码的格式;
    Prettier 是一种代码格式化程序,它以特定的方式为你格式化代码。
  • eslint—— 保持代码整洁;
  • date-fns——moment.js 的轻量级替代品;
  • lodash—— 主要用于 throttle()debounce() 函数;
  • rambda—— 如果你真的喜欢函数式编程。
  • cross-env
  • Yarn—— 快速、可靠、安全的依赖管理工具。
  • art-template——JavaScript 模版引擎

文章资源

  • 【知乎 Live】狼叔:如何正确的学习 Node.js
  • PDF:深入浅出 Node.js
  • 阿里云出品:七天学会 Node.js
  • 如何挑选高质量的 Node.js 模块
  • node.js - 基础科普性文章,值得观看⭐️⭐️⭐️
  • RESTful API 完整介绍
  • GitHub: process 与 node.js 进程相关的一篇文章

欢迎关注我的其它发布渠道