【编者按】本文作者为 Peter Wayner,主要介绍13款至精至简的 Node.js 框架,帮助你简化高速网站、丰富 API 以及实时应用的开发流程。本文系国内 ITOM 管理平台 OneAPM 编译呈现,以下为正文第二部分。点此查看本文的第一部分

Node.js 推出至今也有些年头了,但它就像初生的太阳,充满朝气。人们不断地探索更新更好的平台信息发布方式,于是选择也越来越多。这些努力最终催生了多款 Node.js 框架,不论是 Node.js 爱好者还是新手,都可以尽情探索,寻求新的提升。下文将介绍另外7款不错的 Node.js 框架。

7、Hapi

借助 Hapi 框架,可以搭建完整的网站。但是,很多 Hapi 用户专注于用其打造从后台抽取数据,并快速高效地进行发布的服务。每台服务器只是一组映射的集合,这些映射将 URL 路径对应到生成结果的函数,而这些路由则通过 Hapi API 进行配置,而不是写入新代码中。此外,Hapi 社区支持多种多样的插件,可用于处理搭建服务时必要的身份验证、安全等问题。

上图展示了 Boom 插件正式判定的几个标准化错误,Boom 插件提供了一组工具,可以帮助用户更好地了解可能出现的 HTTP 错误。

Hapi 基于要求基本属性的许可证发布,其 GitHub 地址在此

8、Sails.js

如果你需要打造一个企业级的自定义 Web 应用,Sails.js MVC 框架能帮助你处理许多应用核心任务,同时适应性很高,能与其他工具协作。据其维护人员称:Sails 不仅“无所谓前端环境”,而且能适配“任何数据库”。并且,如果你使用该框架生成的标准 REST API,其中的大部分实现过程都是自动化的。如果你喜欢 Ruby 的惯例哲学以及 MVC 的分离特性,Sails 的一切会显得似曾相识,你也能很快上手。

上图展示了一个 Sails 应用的基本目录结构。

Sails 基于 MIT 许可证发布,其 GitHub 地址在此

9、StrongLoop

创建 API 的大部分工作都可以自动化。一旦知道了数据模型,搭建用于数据编辑的工具在很大程度上只是练习而已。StrongLoop 自动化了大部分此类操作,并添加了针对大多数大型数据存储,诸如 Oracle、MySQL 及 MongoDB,的连接器。此外,为了提高适应性,他们不是支持随时间变化的动态数据模型,就支持带有固定模式的静态模型。这由你决定。此外,还提供了一个现成的安全层,具备访问控制表及一些不错的移动服务。以上一切都是基于 Express 搭建的,因此,你要从 Express 的全部功能集入手。

上图展示了 StrongLoop 的 API 探索工具。

对于测试项目,StrongLoop 可基于混合型开源许可证发布。其 GitHub 地址在此

10、ActionHero

许多框架都把为全功能用户提供高端支持设为目标,这些用户往往运行着浏览器、通过 JSON 实现交互。ActionHero 不仅能实现这一点,还在低端,通过有线协议与 TCP 直接通信。如果你需要比 JSON 更为简单的数据格式,这就非常方便了。此外,如果你想发送原始文件,这一机制也大有益处,因为 ActionHero 的发布方式与 CDN 类似,不会要求你运行 Apache 或 Nginx

上图展示了 ActionHero 处理不同动作以及与 Redis 连接的栈结构。

ActionHero 基于 Apache 许可证发布,其 GitHub 地址在此

11、Keystone.js

Express 与 MongoDB 是 Node.js 栈的关键组成部分。但是,你需要将二者结合,再添加一点新的功能,才能真正实现消息传递。Keystone.js 旨在联结 Express 与 MongoDB 以实现一个内容管理系统。不过,借助于 Keystone 提供的 Yeoman 框架构建服务,这一过程已经大为简化。Yeoman 能帮助你填好文件,安装好运行博客或博文等内容所需的所有组件。

上图展示了一个使用 Yeoman 及 Keystone 搭建的图片共享演示网页的一部分。

Keystone 基于 MIT 许可证发布,其 GitHub 地址在此

12、Sequelize

像 PostgresQL 或 MySQL 之类的 SQL 数据库来自事务处理世界,你发出一个命令,进而等待答复。而 Node 则建立于在 JavaScript 中颇为常见的异步回调架构。Sequelize 将二者进行了整合。当你为其支持的五大数据库中的任意一种创建 SQL 查询时,Sequelize 会发送查询,并承诺在数据库返回查询结果时调用你的函数。它将旧世界与新的架构命令(architectural imperative)进行了联姻。

上图展示了如何重写一条旧 SQL 查询以适应 Node 摩登世界。

Sequelize 的源码基于要求基本属性的许可证发布,其 GitHub 地址在此

13、Mean.io

实际上,Mean 并不是一个 Node.js 框架。它是一组预先优化过以协调运行的框架与技术的集合。作为缩略词,MEAN 实际上代表着 MongoDB, Express, Angular 以及 Node。每个组成成分本身都是 Node 生态系统中最流行的部分。当它们聚集在一起时,使用起来甚至更加方便。

上图展示了 Node 包管理器如何安装这些成分,以及用于开发应用的一个新指令: mean

组成 Mean 的各个成分有其自己的许可证以及源码库。

OneAPM 能帮助您轻松锁定 Node.js 应用性能瓶颈,通过强大的 Trace 记录逐层分析,直至锁定行级问题代码。以用户角度展示系统响应速度,以地域和浏览器维度统计用户使用情况。想阅读更多技术文章,请访问 OneAPM 官方博客

本文转自 OneAPM 官方博客

原文地址:http://www.javaworld.com/article/3066837/application-development/13-fabulous-frameworks-for-nodejs.html

13 款惊艳的 Node.js 框架——第2部分的更多相关文章

  1. 13 款惊艳的 Node.js 框架——第1部分

    [编者按]本文作者为 Peter Wayner,主要介绍13款至精至简的 Node.js 框架,帮助你简化高速网站.丰富 API 以及实时应用的开发流程.本文系国内 ITOM 管理平台 OneAPM ...

  2. LoopBack – 开源的,可扩展的 Node.js 框架

    LoopBack 是建立在 Express 基础上的开源 Node.js 框架,专门为 Mobile,Web 和其他设备做了优化.LoopBack 能够连接到多个数据源,使用 Node.js 编写业务 ...

  3. Node.js 框架

    Node.js的是一个JavaScript平台,它允许你建立大型的Web应用程序.  Node.js的框架平台使用JavaScript作为它的脚本语言来构建可伸缩的应用. 当涉及到Web应用程序的开发 ...

  4. node.js框架express的安装

    node.js框架express的安装 首先假定你已经安装了 Node.js,接下来为你的应用创建一个目录,然后进入此目录并将其作为当前工作目录. $ mkdir myapp $ cd myapp 通 ...

  5. 不可错过的Node.js框架

    前言 Node.js是由Ryan Dahl于2009年创建的.它是一个开源的跨平台运行时环境,用于开发服务器端和网络应用程序,它是基于Google Chrome V8 JavaScript引擎构建的. ...

  6. 【转】node.js框架比较

    我偶然间看到这篇文章,转这个文章并没有什么含义,仅仅是感觉总结的不错,对于新学node的友友们来说希望这篇文章为大家对 Node.js 后端框架选型带来一些帮助,学习不再迷茫,也是让我有个保存,以后参 ...

  7. Node.js 框架对比之 Express VS Koa

    背景 上图是一个典型的采用 Node.js 开发 web 应用的前后端结构,下面介绍一下 Node 服务层在其中的作用以及使用 Node.js 的一些优劣. Node 服务层作用: 请求代理 传统做法 ...

  8. 初探 Node.js 框架:eggjs (环境搭配篇)

    eggjs 是一个优秀的 Node.js 框架 概述:为什么标题上说 eggjs 是一个优秀的 Node.js 框架(可跳过)? 换言之,我们为什么选择 eggjs 进行开发而不是之前初学时使用的 E ...

  9. [转]Node.js框架对比:Express/Koa/Hapi

    本文转自:https://www.cnblogs.com/souvenir/p/6039990.html 本文翻译自: https://www.airpair.com/node.js/posts/no ...

随机推荐

  1. 关于Android系统的启动流程

    当按下Android设备电源键时究竟发生了什么?Android的启动过程是怎么样的?什么是Linux内核?桌面系统linux内核与Android系统linux内核有什么区别?什么是引导装载程序?什么是 ...

  2. Vue + Element UI 实现权限管理系统 前端篇(六):更换皮肤主题

    自定义主题 命令行主题工具 1.安装主题工具 首先安装「主题生成工具」,可以全局安装或者安装在当前项目下,推荐安装在项目里,方便别人 clone 项目时能直接安装依赖并启动. yarn add ele ...

  3. map集合的见解、排序

    map是键值对的集合接口,它的实现类主要包括:HashMap,TreeMap,Hashtable以及LinkedHashMap等 HashMap:我们最常用的Map,它根据key的HashCode 值 ...

  4. DROP TABLE 恢复【一】

    当DROP TABLE指令敲下的时候,你很爽,你有考虑过后果么?如果该表真的没用,你DROP到无所谓,如果还有用的,这时你肯定吓惨了吧,如果你有备份,那么恭喜你,逃过一劫,如果没有备份呢?这时就该绝望 ...

  5. 面试:用快排实现数组中的第K大的数

    #include <iostream> #include <cassert> using namespace std; int selectKth(int a[],int st ...

  6. 【Leetcode】292. Nim游戏

    题目链接:https://leetcode-cn.com/problems/nim-game/description/ 您和您的朋友,两个人一起玩 Nim游戏:桌子上有一堆石头,每次你们轮流拿掉 1  ...

  7. Python中的单例模式的几种实现方式的及优化

    单例模式 单例模式(Singleton Pattern)是一种常用的软件设计模式,该模式的主要目的是确保某一个类只有一个实例存在.当你希望在整个系统中,某个类只能出现一个实例时,单例对象就能派上用场. ...

  8. [Angularjs]处理页面闪烁的方法

    摘要 在使用{{}}绑定数据的时候,页面加载会出现满屏尽是{{xxx}}的情况.数据还没响应,但页面已经渲染了.这是因为浏览器和angularjs渲染页面都需要消耗一定的时间,这个间隔可能很小,甚至让 ...

  9. ASP.NET MVC显示异常信息

    开发ASP.NET多了,它的异常信息显示也习惯了.但在ASP.NET MVC中,却是另外一番情形. 以前只习惯使用IE浏览器,现在开发ASP.NET MVC程序,为了捕获到异常信息,Firefox的f ...

  10. 【MongoDB-MongoVUE图像管理工具】

    介绍一款很不错的开源的MongoDB图形化管理工具:MongoVUE . MongoVUE 1.6.9 破解版,下载地址.