13 款惊艳的 Node.js 框架——第1部分
【编者按】本文作者为 Peter Wayner,主要介绍13款至精至简的 Node.js 框架,帮助你简化高速网站、丰富 API 以及实时应用的开发流程。本文系国内 ITOM 管理平台 OneAPM 编译呈现,以下为正文的第一部分。
Node.js 推出至今也有些年头了,但它就像那初生的太阳,充满朝气。人们不断地探索更新更好的平台信息发布方式,于是选择也越来越多。这些努力最终催生了多款 Node.js 框架,不论是 Node.js 爱好者还是新手,都可以尽情探索,寻求新的提升。
在下文中,笔者将介绍最引人注目的十多款框架。这些框架能有效简化复杂网站的构建流程。如果你正打算开始新的项目,不妨尝试其中的一些框架,可快速完成前期工作,并体验这些项目中捆绑的功能。
1、express
Express 是一款以轻量级的方式处理请求的框架。它将 URL 映射至模板,将来自通用数据存储中的数据填入值中。其标准的模板引擎为 Consolidate,但是由于样式相当简单,大多数模板引擎都能良好运行。
Express 团队许诺说,MySpace 欲意采用 Express 打造新版本,以此提高其时髦度。如果你不知道 MySpace 为何物,可以问问祖父母,他们或许还有 MySpace 账号。
Express 基于 MIT 许可证发布,其 GitHub 地址在此。
2、Koa.js
打造 Express 的团队决定更进一步,使用全新可伸缩的调用栈构建新一代框架。名为 Koa.js 的调用栈允许你在调用及响应握手时添加新的特性。一开始,你需要写一点代码来处理请求,但之后,就可以自定义请求处理的全过程。负责所有交互和错误处理的中间件都可以加以修改。此外,还有十多项插件包,为调用栈添加了压缩、缓存、JSON 编码等功能。
上图展示了与 Koa 捆绑的某个模板库使用的部分 Jade 标记。
Koa 基于 MIT 许可证发布,其 GitHub 地址在此。
3、Total.js
Total.js 栈的设计初衷是尽可能实现自动化。从 HTML 和 CSS 标记模板出发,Total 可以将之编译为原始代码,压缩之后再进行发布。从某种意义上讲,Total 是伪装为框架的一个强力网站编译器。
上图展示了一个寿司吧网站的实例。
Total 基于 MIT 许可证发布,其 GitHub 地址在此。
4、Derby.js
Node.js 的一个重要特点是在浏览器与服务器端使用相同的语言。Derby.js 通过试图在两端运行相同的代码,并同步运行结果,将这一特点发挥到极致。之后,它通过模板渲染、打包以及一些 MVC 来简化这一过程。你无需担心诸如编译 CSS 代码的问题,因为 Derby 集成了这些功能。
上图展示了一个基本的待办事物清单。
Derby 基于 MIT 许可证发布,其 GitHub 地址在此。
5、Meteor.js
Meteor.js是一款实时应用,其设计初衷是打造与服务器持续同步的 Web 应用。对模板或数据进行的修改会自动从服务器端传到浏览器端。重新描绘与更新操作直接由底层框架负责。并且,这一机制是双向的。浏览器代码进行改动或写入数据时就像直接操作数据库一样。同步完全在后台进行。
上图展示了一个在 Meteor 中打造的用于同步急救先锋队任务的应用。
Meteor 基于 Apache 许可证发布,在其官网与 Github 均可找到安装脚本。
6、restify
并非每个应用都要求浏览器的全面支持。Restify 是旨在仅通过 API 提供数据的服务器端框架。成功运行之后,Restify 输出的是 JSON 数据。
Restify 相当强调调试与分析,因此你可以深入钻研、优化服务器的性能。DTrace 集成性能好,支持度高,能清晰了解应用状况,预测可能出现的错误。
上图展示了一个在调试会话中保存的审计数据包。
Restify 基于非常基本的许可证发布,使用时要求注明版权。其 GitHub 地址在此。
以上为前6个框架,欲知后续内容,敬请关注 OneAPM 官方技术博客。
OneAPM 能帮助您轻松锁定 Node.js 应用性能瓶颈,通过强大的 Trace 记录逐层分析,直至锁定行级问题代码。以用户角度展示系统响应速度,以地域和浏览器维度统计用户使用情况。想阅读更多技术文章,请访问 OneAPM 官方博客。
本文转自 OneAPM 官方博客
13 款惊艳的 Node.js 框架——第1部分的更多相关文章
- 13 款惊艳的 Node.js 框架——第2部分
[编者按]本文作者为 Peter Wayner,主要介绍13款至精至简的 Node.js 框架,帮助你简化高速网站.丰富 API 以及实时应用的开发流程.本文系国内 ITOM 管理平台 OneAPM ...
- LoopBack – 开源的,可扩展的 Node.js 框架
LoopBack 是建立在 Express 基础上的开源 Node.js 框架,专门为 Mobile,Web 和其他设备做了优化.LoopBack 能够连接到多个数据源,使用 Node.js 编写业务 ...
- Node.js 框架
Node.js的是一个JavaScript平台,它允许你建立大型的Web应用程序. Node.js的框架平台使用JavaScript作为它的脚本语言来构建可伸缩的应用. 当涉及到Web应用程序的开发 ...
- node.js框架express的安装
node.js框架express的安装 首先假定你已经安装了 Node.js,接下来为你的应用创建一个目录,然后进入此目录并将其作为当前工作目录. $ mkdir myapp $ cd myapp 通 ...
- 不可错过的Node.js框架
前言 Node.js是由Ryan Dahl于2009年创建的.它是一个开源的跨平台运行时环境,用于开发服务器端和网络应用程序,它是基于Google Chrome V8 JavaScript引擎构建的. ...
- 【转】node.js框架比较
我偶然间看到这篇文章,转这个文章并没有什么含义,仅仅是感觉总结的不错,对于新学node的友友们来说希望这篇文章为大家对 Node.js 后端框架选型带来一些帮助,学习不再迷茫,也是让我有个保存,以后参 ...
- Node.js 框架对比之 Express VS Koa
背景 上图是一个典型的采用 Node.js 开发 web 应用的前后端结构,下面介绍一下 Node 服务层在其中的作用以及使用 Node.js 的一些优劣. Node 服务层作用: 请求代理 传统做法 ...
- 初探 Node.js 框架:eggjs (环境搭配篇)
eggjs 是一个优秀的 Node.js 框架 概述:为什么标题上说 eggjs 是一个优秀的 Node.js 框架(可跳过)? 换言之,我们为什么选择 eggjs 进行开发而不是之前初学时使用的 E ...
- [转]Node.js框架对比:Express/Koa/Hapi
本文转自:https://www.cnblogs.com/souvenir/p/6039990.html 本文翻译自: https://www.airpair.com/node.js/posts/no ...
随机推荐
- 全网最详细的Xshell或SecureCRT下spark-shell里出现无法退格或者删除的问题现象的解决办法(图文详解)
不多说,直接上干货! 前言 打开spark的命令行后,发现输错字符了,但是无法退格或者删除,这是比较苦恼的问题. 这个问题,得看你是用Xshell,还是SecureCRT. 一般是出现在SecureC ...
- Chapter 3 Phenomenon——21
"Nobody will believe that, you know." “你知道吗没有人会相信会是这样的” His voice held an edge of derision ...
- Tensorflow应用之LSTM
学习RNN时原理理解起来不难,但是用TensorFlow去实现时被它各种数据的shape弄得晕头转向.现在就结合一个情感分析的案例来了解一下LSTM的操作流程. 一.深度学习在自然语言处理中的应用 自 ...
- j2ee高级开发技术课程第八周
介绍一. hashCode()方法和equal()方法的作用其实一样,在Java里都是用来对比两个对象是否相等一致,那么equal()既然已经能实现对比的功能了,为什么还要hashCode()呢? 因 ...
- ASP.NET MVC 表格操作
Beginners Guide for Creating GridView in ASP.NET MVC 5 http://www.codeproject.com/Articles/1114208/B ...
- 【胡思乱想】命令模式中,命令对象如何解耦Invoker和Receiver
首先,我们得清楚为何要解耦? 耦合的坏处就是,牵一发而动全身,比如,当我更改了类A或其子类的时候,类B也要进行修改.这里,解除耦合,就意味着,即使你Receiver怎么改,添加了多少,删除了多少.我I ...
- Docker Swarm 日常运维命令笔记
之前介绍了Docker管理工具-Swarm部署记录,这里简单总结下Docker Swarm的日常维护命令,以作为平时运维笔记. Swarm作为一个管理Docker集群的工具,首先需要将其部署起来,可以 ...
- linux----之tcpdump小用
1.通过抓包大致确定访问量 #time tcpdump -nn -i eth0 'tcp[tcpflags] = tcp-syn' -c 10000 >/dev/null 根据real时间判断访 ...
- Spring-web初始化流程简图
- POJ 1061 青蛙的约会(拓展欧几里得算法求解模线性方程组详解)
题目链接: BZOJ: https://www.lydsy.com/JudgeOnline/problem.php?id=1477 POJ: https://cn.vjudge.net/problem ...