对于node.js之十大Web框架感兴趣的读者,本文将提供您所需要的所有信息,我们将详细讲解node.jsweb框架,并且为您提供关于14款NodeJSWeb框架推荐、14款NodeJSWeb框架推荐
对于node.js之十大Web框架感兴趣的读者,本文将提供您所需要的所有信息,我们将详细讲解node.js web框架,并且为您提供关于14款NodeJS Web框架推荐、14款NodeJS Web框架推荐_node.js、7个Node.js的Web框架、Chair:支付宝前端团队推出的Node.js Web框架的宝贵知识。
本文目录一览:- node.js之十大Web框架(node.js web框架)
- 14款NodeJS Web框架推荐
- 14款NodeJS Web框架推荐_node.js
- 7个Node.js的Web框架
- Chair:支付宝前端团队推出的Node.js Web框架
node.js之十大Web框架(node.js web框架)
之前接触过Node.js是因为好奇大前端越来越能干了,连我后台的饭碗都要抢了,太嚣张了,于是我想打压打压它,然后就这样接触它了。
再到后来是因为Settings-Sync插件二次开发,我需要用node.js造一个mock server,而当时在开源项目上找到一个模拟github rest api的node.js服务端程序,然后我就在此基础上开发。从工作中学习有应用场景有目的性,果然还是学的要快很多。
今天之所以要说一说node.js的十大Web框架,主要是觉得以后针对VsCode开发或者是我自己的项目,用Node.js可能会比较多,比如我将我的博客系统一步一步完善,我想尝试微服务的很多种实践方式,其实很多企业用微服务,还有一个原因就是不受编程语言的制约。
大前提:框架无优劣之分,只有在某个应用场景是否更适合和更好。
一、Node.js开发框架Sail.js
Sail.js官网地址为:https://sailsjs.com/
github地址:https://github.com/balderdashy/sails
Sails可以轻松构建自定义的企业级Node.js应用程序
在几周内而不是几个月内构建实用的,生产就绪的Node.js应用程序。Sails是Node.js最流行的MVC框架,旨在模拟Ruby on Rails等框架的熟悉MVC模式,但支持现代应用程序的需求:具有可扩展性,面向服务的体系结构的数据驱动API。
优点如下:
(1)100%JavaScript
在Sails自上构建意味着你的应用程序完全使用JavaScript编写,从这里可以看出浏览器兼容性良好;
(2)任何数据库
Sails捆绑了一个功能强大的ORM,即Waterline,它提供了一个简单的数据访问层,无论你使用什么数据库,它都能正常工作;
(3)自动生成的Rest API
Sails附带的蓝图有助于在不编写任何代码的情况下快速启动应用程序的后端;
(4)前端不可知
Sails与任何前端兼容:Angular、React、IOS、Android、Windows Phone,自定义硬件或其他完全兼容;
(5)轻松WebSocket集成
由于Sails会为您转换传入的套接字消息,因此它们会自动与Sails应用中的每个路由兼容;
(6)专业支持
Sails提供商业支持,以加速开发并确保代码职工的最佳实践;
二、Node.js服务端框架 Hapi.js
官网地址为:https://hapijs.com/
如何创建一个Hapi.js?请参考如下步骤(均来自官网示例):
1.初始化
npm init
2.安装库
npm install hapi --save
3.编写js
''use strict'';
const Hapi=require(''hapi'');
// Create a server with a host and port
const server=Hapi.server({
host:''localhost'',
port:8000
});
// Add the route
server.route({
method:''GET'',
path:''/hello'',
handler:function(request,h) {
return''hello world'';
}
});
// Start the server
const start = async function() {
try {
await server.start();
}
catch (err) {
console.log(err);
process.exit(1);
}
console.log(''Server running at:'', server.info.uri);
};
start();
4.运行
npm start
三、Node.js 高性能封装 Express.js
关于这个可以参考我的这篇博客:https://developers-youcong.github.io/2019/02/22/node-js%E4%B9%8Bexpress%E6%A1%86%E6%9E%B6/
四、Node.js Web框架 Kraken.js
Kraken 基于 express 构建,实现对环境变量的感知、动态配置、高级中间件和应用生命周期的事件通知。
官网地址为:http://krakenjs.com/
示例例子:
''use strict'';
var express = require(''express''),
kraken = require(''kraken-js'');
var app = express();
app.use(kraken());
app.listen(8000);
五、Web应用构建平台 Meteor
Meteor是一组新的技术用于构建高质量的Web应用,提供很多现成的包,可直接在浏览器或者云平台运行。
官网地址为:https://www.meteor.com/
优点如下:
(1)使用更少的代码运送更多
由于集成的JS堆栈从数据库扩展到最终用户的屏幕,因此可以在10行中完成1000行.
(2)为任何设备构建应用程序
无论是针对Web、IOS、Android还是桌面进行开发,都使用相同的代码。热门推送新功能,无需应用商店批准或者强制用户下载新的原生应用.
(3)集成已有的技术
使用流行的框架和工具,开箱即用。专注于构建功能,而不是自己将不同的组件连接在一起。
六、全栈JavaScript 开发架构 Mean.js
官网地址为:http://meanjs.org/
1.什么是Mean.js
MEAN.JS是一个全栈JavaScript的解决方案,可帮助您使用MongoDB、Express、Angular和Node.js构建快速,健壮且可维护的生产Web应用程序.
2.为何选择Mean.js
Mean.js将帮助你入门并避免无用的笨拙工作和常见陷阱,同时保持你的应用程序井然有序。我们目标是创建和维护一个简单易读的开源解决方案,你可以使用它并信任它。
3.入门
入门请参考官方文档:http://meanjs.org/docs.html
七、Node.js的Web框架 Koa.js
Koa是下一代的Node.js的Web框架。由Express团队设计。旨在提供一个更小型、更富有表现力、更可靠的Web应用和API的开发基础。
Koa可以通过生成器摆脱回调,极大地改进错误处理。Koa核心不绑定任何中间件,但提供了优雅的一组可以快速愉悦地编写服务器应用的方法。
关于koa可参考:https://www.npmjs.com/package/koa
八、Node.js CMS 和 Web 应用程序平台 KeystoneJS
KeystoneJS,以 Express 和 MongoDB 为基础搭建的 Node.js CMS 和 Web 应用程序平台。
官网地址为:https://keystonejs.com/
具有以下特性:
Express.js 和 MongoDB:Keystone 会为你配置 express(node.js 上的 Web 服务器),用 Mongoose(领先的 ODM 包)连接你的 MongoDB 数据库
动态路由:Keystone 从设置 MV* 程序的最佳实践入手,让你管理模板、视图和路由变得更容易
数据库域:ID、String、Boolean、Date 和 Number 是数据库的构件。Keystone 以它们为基础实现了在现实工作中更实用的域类型,比如 name、email、password、address、image 和 relationship (及其它)
自动生成管理员界面:不管你在搭建应用程序,或者在生产环境中作为数据库内容管理系统时是否用它,Keystone 的管理员界面都能节省你的时间,让你管理数据更容易
编码更简单:有时即便做的事情简单,异步代码也会变得复杂。Keystone让简单的事情(比如在视图中显示之前加载数据)保持简单
表单处理:要验证表单、上次图片或用一行代码更新数据库?基于你已经定义的数据模型,Keystone 可以做到
会话管理:Keystone 自带了会话管理和认证功能,包括密码域的自动加密
发送 Email:借助 Keystone,你的应用程序可以轻松地设置、预览和发送基于模板的 email。它还集成了 Mandrill (Mailchimp 卓越的事务性 email 发送服务)
九、Node.js 框架组件 flatiron.js
flatiron 是一款 Node.js 和浏览器的框架组件,是一款构建现代化 web 应用适应性很强的框架。flatiron 提供比 Rails 类组件有更丰富配置的框架组件,允许开发者自己添加他们想要的功能组件。
可参考地址为:https://www.npmjs.com/package/flatiron
十、基于 Node.js 的 API 框架 LoopBack
LoopBack 是基于 Node.js 的一个开源的 API 框架,可以让 Node.js 应用方便的跟各种设备通过 API 进行互联。
可参考地址为:https://loopback.io/
本文主要参考除引入的官网外还参考Node.js十大Web框架
14款NodeJS Web框架推荐
在几年的时间里,Node.js逐渐发展成一个成熟的开发平台,吸引了许多开发者。有许多大型高流量网站都采用Node.js进行开发,像PayPal,此外,开发人员还可以使用它来开发一些快速移动Web框架。
下面就介绍14款基于Node.js的Web应用框架,大家不妨过来看看有没有适合你的那一款。
1.Primus
Primus,是Transformer的创造者,并且也被称为通用包装器实时框架。Primus里包含了大量的用于Node.js的实时框架,并且它们都拥有各种不同的实时功能。此外,Primus还提供了通用的低级别接口用于各个实时框架之间进行通信。Primus开源,并且托管在Github上。
2.Geddy
Geddy是一个非常简单的基于Node.js的结构化MVC框架。你可以使用它快速的构建Web应用和JSON API。如果你使用过Ruby on Rails或者PHP的codelgniter,那么Geddy和他们非常类似。它拥有一个RESTful的路由、模板渲染、控制器和模型。
想学Geddy的开发者可以去Fleegix看看,上面有大量关于Geddy的使用教程和学习资料,并且这个博客就是采用Geddy开发的。
3.Locomotive
Locomotive是个强大的Node.js的MVC框架,支持RESTfu,可以无缝连接任何数据库和模版引擎。Locomotive是在Express的基础上建立的,保持了Node.js 强大而简单的功能。
4.KeystoneJS
KeystoneJS是一个基于Express与Mongoose的Node.js CMS内容管理平台和Web应用平台。使用它可以方便快速建立基于数据库驱动的网站应用,还提供了安全认证和会话管理、动态路由、能够对密码自动加密、表单校验处理、自动产生管理界面、Email邮件发送等。
5.Grasshopper
Grasshopper是一款功能丰富且非常灵活的Node.js框架,基本上支持所有的Web开发特性。推荐一个学习示例给大家。
6.DozerJS
DozerJS是一款旨在开发可扩展的RESTful风格的API和Web服务来支持前端开发。下面推荐两个DozerJS教程给大家,一个是入门教程,一个是DozerJS开发示例。
7.Chocolate.js
Chocolate.js是一个基于Node.js,使用CoffeeScript构建的简单的Web应用框架(集合)。 想学习该框架的同学可以到这里对其进行全面了解,并且里面有大量的示例。
8.Datachannel.io
Datachannel.io是一款受socket.io框架启发,使用WebRTC技术实现的实时通信Web应用程序。可以直接进行数据连接,并且无需通过服务器即可进行数据交换操作。
9.StrongLoop
StrongLoop是一个基于Node.js开发的API服务,它最著名的一款实时性能监测产品叫StrongOps,通常也叫做Nodefly。StrongLoop套件包含了LookBack、StrongOps、StrongNode这三个产品。
10.UglifyJS
UglifyJS是一个服务端Node.js的压缩程序,里面包含了所有必要的工具和可扩展的文档来帮助开发者提高代码效率。
11.Derby
Derby是一个MVC框架,帮助编写实时,交互的应用。可以运行在Node.js或者浏览器环境中。还拥有一个数据同步引擎Racer。推荐两个学习资源给大家:Node.js MVC:Express.js+Derby.js Hello World教程、使用Derby.js开发教程。
12.Dojo Toolkit
Dojo Tookkit是一款功能非常强大的JavaScript类库,可以实现任何功能。这里提供一个使用Node.js与Dojo开发的教程。
13.CompoundJS
CompoundJS 是一个Node.js的MVC框架,开发者使用它在几分钟内即可构建一款Web应用。快速入门教程。
14.KnockoutJS
KnockoutJS是一个轻量级的UI类库,通过应用MVVM模式使JavaScript前端UI简单化。比如列表数据项增减后,不需要重新刷新整个控件片段或自己写JS增删节点,只要预先定义模板和符合其语法定义的属性即可。简单的说,开发者只需要关注数据的存取。
- 使用Node.js实现简易MVC框架的方法
- 10个最优秀的Node.js MVC框架
- 浅谈Node.js轻量级Web框架Express4.x使用指南
- 基于node.js express mvc轻量级框架实践
14款NodeJS Web框架推荐_node.js
在几年的时间里,node.js逐渐发展成一个成熟的开发平台,吸引了许多开发者。有许多大型高流量网站都采用node.js进行开发,像paypal,此外,开发人员还可以使用它来开发一些快速移动web框架。
下面就介绍14款基于Node.js的Web应用框架,大家不妨过来看看有没有适合你的那一款。
1.Primus
Primus,是Transformer的创造者,并且也被称为通用包装器实时框架。Primus里包含了大量的用于Node.js的实时框架,并且它们都拥有各种不同的实时功能。此外,Primus还提供了通用的低级别接口用于各个实时框架之间进行通信。Primus开源,并且托管在Github上。
2.Geddy
Geddy是一个非常简单的基于Node.js的结构化MVC框架。你可以使用它快速的构建Web应用和JSON API。如果你使用过Ruby on Rails或者PHP的codelgniter,那么Geddy和他们非常类似。它拥有一个RESTful的路由、模板渲染、控制器和模型。
想学Geddy的开发者可以去Fleegix看看,上面有大量关于Geddy的使用教程和学习资料,并且这个博客就是采用Geddy开发的。
3.Locomotive
Locomotive是个强大的Node.js的MVC框架,支持RESTfu,可以无缝连接任何数据库和模版引擎。Locomotive是在Express的基础上建立的,保持了Node.js 强大而简单的功能。
4.KeystoneJS
KeystoneJS是一个基于Express与Mongoose的Node.js CMS内容管理平台和Web应用平台。使用它可以方便快速建立基于数据库驱动的网站应用,还提供了安全认证和会话管理、动态路由、能够对密码自动加密、表单校验处理、自动产生管理界面、Email邮件发送等。
5.Grasshopper
Grasshopper是一款功能丰富且非常灵活的Node.js框架,基本上支持所有的Web开发特性。推荐一个学习示例给大家。
6.DozerJS
DozerJS是一款旨在开发可扩展的RESTful风格的API和Web服务来支持前端开发。下面推荐两个DozerJS教程给大家,一个是入门教程,一个是DozerJS开发示例。
7.Chocolate.js
Chocolate.js是一个基于Node.js,使用CoffeeScript构建的简单的Web应用框架(集合)。 想学习该框架的同学可以到这里对其进行全面了解,并且里面有大量的示例。
8.Datachannel.io
Datachannel.io是一款受socket.io框架启发,使用WebRTC技术实现的实时通信Web应用程序。可以直接进行数据连接,并且无需通过服务器即可进行数据交换操作。
9.StrongLoop
StrongLoop是一个基于Node.js开发的API服务,它最著名的一款实时性能监测产品叫StrongOps,通常也叫做Nodefly。StrongLoop套件包含了LookBack、StrongOps、StrongNode这三个产品。
10.UglifyJS
UglifyJS是一个服务端Node.js的压缩程序,里面包含了所有必要的工具和可扩展的文档来帮助开发者提高代码效率。
11.Derby
Derby是一个MVC框架,帮助编写实时,交互的应用。可以运行在Node.js或者浏览器环境中。还拥有一个数据同步引擎Racer。推荐两个学习资源给大家:Node.js MVC:Express.js+Derby.js Hello World教程、使用Derby.js开发教程。
12.Dojo Toolkit
Dojo Tookkit是一款功能非常强大的JavaScript类库,可以实现任何功能。这里提供一个使用Node.js与Dojo开发的教程。
13.CompoundJS
CompoundJS 是一个Node.js的MVC框架,开发者使用它在几分钟内即可构建一款Web应用。快速入门教程。
14.KnockoutJS
KnockoutJS是一个轻量级的UI类库,通过应用MVVM模式使JavaScript前端UI简单化。比如列表数据项增减后,不需要重新刷新整个控件片段或自己写JS增删节点,只要预先定义模板和符合其语法定义的属性即可。简单的说,开发者只需要关注数据的存取。
7个Node.js的Web框架
NodeJS也就是Node,是众所周知的使用javascript构建Web应用框架,它启动一个服务器非常简单,如下:
var http = require(''http'');
http.createServer(function (request, response) {
response.writeHead(200, {''Content-Type'': ''text/plain''});
response.end(''Hello World\n'');
}).listen(8080);
console.log(''Server started'');
但是Node.js仅仅是启动了一个基于Http协议的服务器,而Web开发在其之上还需要很多库包支持,下面列举了基于Node基础上的七个小型Web框架:
Express
Express是一个轻量Web框架,能够建立大型或小型轻量的Web应用,与NodeJS Angular.js和MongoDB合称为Mean全栈开发工具,被以下网站应用:
- MySpace
- Storify
- Countly
博客平台 ''Ghost'' 也是基于Express构建。
Express是Node.js用于Web应用的工具包,能够创建基于http的端口,处理cookie等,提供一切你可能需要建立自己的Web服务器的库包,主要有:
- 1. 简单的REST路由:如app.get(/account/:id, function(req, res){ /* req.params(''id'') is available */ });
- 通过Jade的简单模板化
- 自动化的http处理。
- 支持异步处理请求响应的中间件。
- 分析POST请求体
- 防止XSS攻击
- 错误处理
Flatiron
Flatiron 是来自Nodejitsu支持的项目, 它为Node.js开发提供了很多好用资源和工具包,提供了依赖注入和反转控制等功能 还有流式控制等(大型文件上传),路由, 模板和校验等。
使用来自Nodejitsu同一标准构建的高质量高性能标准组件工具帮助你建立解耦的规模应用,也是一个全栈Web应用程序开发框架,它将很多工具封装结合在一起,使得构建基于流的应用开发更容易。
Koa
koa实际初始是由Express开发和维护的一个Web框架,一个Koa应用是一个包含一组中间件生成器,类似Ruby''s Rack, Connect, 等等 – 是一种基于低层次中间件层次的高级“糖”语法,提高了互用性,鲁棒性,并使得编写中间件更愉快 。支持 content-negotiation, cache 刷新和代理支持。
total.js
total是一个创建Nodejs应用的现代小型web框架,主要为可扩展可伸缩的应用程序设计,包括支持WebSockets 的完美URL路由,
restify
能够构建Node.js的REST API,它在纯粹构建REST API可能比Express更加吸引人。不像Express除了REST以外还有模板和渲染等其他功能,Restify的存在是为了让你打造"严格"的API服务,支持DTrace平台
SocketStream
专门为构建实时Web,由于已经将基础封装,SocketStream 能够解放你,让你关注构建你的社交或聊天应用,或多用户游戏,或者任何你需要实时流数据显示的应用,所有口味都能满足(e.g. Vanilla JS vs CoffeeScript, Stylus vs Less)
Sails.js
Sails是实时的MVC框架,能够更易于定制企业级别的Node.js应用. 它设计类似Ruby on Rails,但是支持更现代应用的需求:: 数据驱动data-driven APIs ,面向服务架构SOA,也特别适合构建实时聊天 多用户游戏。
Chair:支付宝前端团队推出的Node.js Web框架
Chair是支付宝前端团队推出的,基于Node.js的Web框架,适用于大部分的Web应用。
本文简要介绍Chair的设计思想、功能架构和开发状况。
一、Chair的由来和设计思想
历史上,支付宝前端项目都是直接基于Java后端开发的。这种架构下,前端工程师做出网页模板(基于velocity模板引擎的vm文件),交给后端的Java引擎渲染。支付宝采用的Java引擎是名为Sofa的MVC框架。
对于前端工程师来说,这种架构有很多不方便的地方。首先,需要了解后端的实现,并且依赖开发环境中的dev服务器进行调试开发;其次,开发细节需要与后端的 Java工程师沟通,交流成本相当大;最后,难以发起技术创新,因为只要涉及后端的调整,推动起来非常困难。在前端技术日新月异的今天,这已经越来越成为 前端工程师心中的痛。
Chair框架就是在这种背景下诞生的,我们希望通过加入一个Node层,加速前端开发,提升研发效率,提高网站整体性能和系统的可维护性。
作为Sofa的替代,Chair直接与底层的Java服务通信,而客户端浏览器则与Chair通信,这样就不使用Sofa了。前端工程师因此可以完全不碰Java,使用熟悉的JavaScript语言,同时在浏览器和服务器两端进行快速迭代。
事实上,Chair这个名字就是来自跟Sofa的对比,因为两者都能坐人,但是椅子(Chair)比沙发(Sofa)轻多了。支付宝已经有了沙发,我们想再为它添一把椅子。
Chair为前端开发,带来了很多便利。
提高了研发效率,前端工程师直接可以改动服务器,避免了与Java后端不必要的沟通成本。
更清晰的职责划分,前端针对表现层(View)开发,后端针对业务和数据(Controller和Model)开发。
更好的⼯程化,前端自己就能完成单元测试、集成测试和自动发布。
节省人工,同样的组件(比如模板和路由)只需要写一次,不用再为浏览器和服务器各写一遍了。
预期的性能提升,Node作为服务器端时,有很强的HTTP请求处理能力。
目前,Chair已经投入了生产环境,与Sofa各自支持着不同的支付宝Web应用。预计不远的将来,会出现更多基于Chair的Web应用。
二、Chair的结构
Chair的基础代码,是基于Koa框架的再开发,使用的语言是下一代JavaScript——ECMAScript 6,模板引擎是Nunjucks,但也可选用其他引擎。同时兼容Velocity模板,现有绝⼤部分模板⽂件⽆需修改也能正常渲染。
整个框架从浏览器到服务器,一共分成五层:
路由层(routers):适配不同路径的HTTP请求
中间件层(middlewares):加工HTTP请求
控制器层(controllers):部署业务逻辑
服务层(services):提供内部的统一API,供不同业务调用
代理层(proxy):负责与Java服务通信,提供统一格式的数据
除了模板引擎以外,Chair还部署了一些功能组件,比如mock(数据模拟)和logger(日志器)。
Chair根据业务实际需求和现有架构高度定制。虽然从结构上看,Chair可以提供完整的后端功能,但目前主要用于模板渲染和路由。真正的业务逻辑和数据处理,还是要交给后端的Java服务。
三、性能提升
Node的加入,为很多功能提供了很大的性能改进。根据压测的结果,使用Chair(下图的web)比使用原来的方案(下图的portal),响应时间和系统负载能力至少提高一倍以上。
四、Chair的开发进度
12月上旬,Chair发布了0.5版。除了修正Bug,这一版主要添加了以下功能。
支持 cookie session, 不依赖 tair
支持连接 MySQL数据库
支持mvc stat 和 rpc stat 日志统计
支持统一导航 uninav 模板
页面数据模拟 pagemock
目前,Chair正处于密集开发之中,预计明年上半年发布1.0.0版。
该文章来自阿里巴巴技术协会(ATA)精选集,作者:兔哥。
文章链接——云栖社区:http://yq.aliyun.com/articles/2921
关于node.js之十大Web框架和node.js web框架的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于14款NodeJS Web框架推荐、14款NodeJS Web框架推荐_node.js、7个Node.js的Web框架、Chair:支付宝前端团队推出的Node.js Web框架的相关知识,请在本站寻找。
本文标签: