Node.js是10年前首次推出的,目前它已经成为世界上最大的开源项目,在GitHub上有+59,000颗星,下载次数超过10亿。流行度快速增加的部分缘由是Node.js容许开发人员在应用程序的客户端和服务器端部分使用相同的语言:JavaScript。Node.js是一个开源和跨平台的JavaScript运行时环境,专为构建可扩展的服务器端WEB应用而设计,自身具备高并发、扩展性强等特色。因为社区其呈指数级增加和普及,所以建立了许多框架来提升生产力。在本文中,咱们将探讨Node.js中三个最流行的框架之间的差别:Express,Koa和Hapi。在之后的文章中,咱们将研究Next,Nuxt和Nest。
比较基于:html
Express是一个最小且灵活的Web应用程序框架,为Web和移动应用程序提供了一组强大的功能,它的行为就像一个中间件,能够帮助管理服务器和路由
star前端
安装node
确保你已经安装node和npm
// 你能够将express安装到项目依赖 npm install express --save // 若是要临时安装Express而不是将其添加到依赖项列表,则可使用 npm install express --no-save
Hello Worldweb
这是关于如何建立一个侦听端口3000并响应“Hello World!”的快速应用程序的最基本示例
// 这里只建立根目录 其余目录返回404 const express = require('express') const app = express() const port = 3000 app.get('/', (req, res) => res.send('Hello World!')) app.listen(port, () => console.log(`Example app listening on port ${port}!`))
好处express
缺点npm
尽管Express.js是一个很是方便且易于使用的框架,但它有一些可能影响开发过程的小缺点。
性能api
Express是对web应用的一层基本封装,继承了Node.js的特性
当天也有一些express性能的最佳实践包括:promise
一个简单的“Hello World”应用程序每秒具备如下性能请求:
安全浏览器
Node.js漏洞直接影响Express,所以确保使用最新的稳定版Node.js
社区参与缓存
最后,express多是Node.js最流行的框架,还有许多其余流行的框架都是基于Express构建的。
Koa 是一个新的 web 框架,由 Express幕后的原班人马打造,致力于成为web应用和API开发领域中的一个更小、更富有表现力、更健壮的基石。 经过利用 async 函数,Koa帮你丢弃回调函数,并有力地加强错误处理Koa并无捆绑任何中间件而是提供了一套优雅的方法,帮助您快速而愉快地编写服务端应用程序
star
安装
Koa须要nodev7.6.0以上版本支持,由于内部使用了ES6的特性
npm i koa node my-koa-app.js
Hello World
建立一个web服务,监听3000端口返回‘Hello World’
const Koa = require('koa'); const app = new Koa(); app.use(async ctx => { ctx.body = 'Hello World'; }); app.listen(3000);
好处
缺点
性能
Koa自己是一个很是轻量级的框架,能够构建具备出色性能的Web应用程序。代码可读性和维护性都相对较高
固然一些性能的最佳实践也是必不可少的,例如:
一个简单的“Hello World”应用程序每秒具备如下性能请求:
安全
Koa有大量的中间件,提供相应的功能 贴图一张
社区
最后,Koa专一于核心中间件功能,设计显式地利用了async/ waiting使异步代码可读性更高
Hapi是基础功能相对丰富的框架。开发人员更专一于业务,而不是花时间构建基础架构。配置驱动的模式,区别于传统的web服务器操做。他还有比一个独特功能,可以在特定的IP上建立服务器,具备相似的功能onPreHandler。再须要的时候你能够拦截特意的请求作一些必要的操做
star
_ GitHub Stars: +11000
安装
确保你已经安装node
npm install hapi
Hello World
如下示例是使用hapi的最基本的hello world应用程序:
'use strict'; const Hapi=require('hapi'); // 建立一个服务监听8000端口 const server=Hapi.server({ host:'localhost', port:8000 }); // 添加路由 server.route({ method:'GET', path:'/hello', handler:function(request,h) { return'hello world'; } }); // 启动服务 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();
好处
缺点
性能
2017年对Node框架的研究代表hapi相对于其余框架的表现最差
一个简单的“Hello World”应用程序每秒具备如下性能请求:
安全
hapi安全性主要依赖于插件
插件选择
社区
最后Express仍然是当下最为流行,koa因拥抱ES6正在崛起,hapi仍是大型项目的第一选择
不论是Express,Koa仍是Hapi目前都是很是成熟的框架。几乎都能知足你的需求,没有最好,只有最合适
哥伦比亚美女开发 Liz
Twitter: @lizparody23
Liz is a self-taught Software Engineer focused on JavaScript, and Developer Relations Manager at NodeSource. She organizes different community events such as JSConf Colombia, Pioneras Developers, Startup Weekend and has been a speaker at EmpireJS, MedellinJS, PionerasDev, and GDG.
She loves sharing knowledge, promoting JavaScript and Node.js ecosystem and participating in key tech events and conferences to enhance her knowledge and network