【编者按】本文作者为 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. C#集成FastDFS断点续传

    C#集成FastDFS断点续传 参考 .net版本FastDFS客户端v5.05. https://github.com/zhouyh362329/fastdfs.client.net FastDFS ...

  2. 【转】Windows 8 desktop app中dll搜索路径设置的诡异现象,Bug?

    原文地址:http://blog.csdn.net/my_business/article/details/8850151 某个桌面程序在win 8上运行异常的问题困扰了我有近一周,今天终于找到了根本 ...

  3. 【JAVA SPRING】IOC与AOP

    IOC(注入)有三种类型: 构造函数注入: 属性注入: 接口注入: JAVA反射: JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法: 对于任意一个对象,都能够调用它的 ...

  4. es-07-head插件-ik分词器插件

    5.x以后, es对head插件的支持并不是特别好 而且kibana的功能越来越强大, 建议使用kibana 1, head插件安装 在一台机器上安装head插件就可以了 1), 更新,安装依赖 su ...

  5. Mysql的select in会自动过滤重复的数据

    默认使用 SELECT 语句: 当加上in范围后,结果如下图: in范围内的数据,如果有重复的,只会选择第一个数据. 所以如果不是直接使用SQL语句来查询,而是在代码中来查询时,记得使用 distin ...

  6. C++ 运算符的重载

    #include <iostream> #include <stdio.h> using namespace std; class Complex //复数类 { public ...

  7. 【IT笔试面试题整理】字符串的排列

    [试题描述]输入一个字符串,打印出该字符串中字符的所有排列.例如输入字符串abc,则打印出a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab,cba. 分析:这是一道很好的考查对 ...

  8. 经典SQL语句大全(转)

    一.基础 1.说明:创建数据库CREATE DATABASE database-name 2.说明:删除数据库drop database dbname3.说明:备份sql server--- 创建 备 ...

  9. double转换为int以及浮点型相加损失精度问题

    最近在做支付相关模块的业务,数据库字段却使用的是double类型,其实也行,只要计算不在sql语句中进行,也是没有问题的. 预先的类属性设置的是Double类型,自己算的时候发现小数相加会出现损失精度 ...

  10. html5标签属性translate

    定义 translate 是指标签属性,不是css3样式规则transform的translate,说它的定义吧:规定是否应该翻译元素内容. 了解:translate是HTML5中的新属性 语法 &l ...