如何选择正确的Node框架:Express,Koa还是Hapi?

简介

Node.js是10年前首次推出的,目前它已经成为世界上最大的开源项目,在GitHub上有+59,000颗星,下载次数超过10亿。流行度快速增长的部分原因是Node.js允许开发人员在应用程序的客户端和服务器端部分使用相同的语言:JavaScript。Node.js是一个开源和跨平台的JavaScript运行时环境,专为构建可扩展的服务器端WEB应用而设计,自身具有高并发、扩展性强等特点。由于社区其呈指数级增长和普及,因此创建了许多框架来提高生产力。在本文中,我们将探讨Node.js中三个最流行的框架之间的差异:Express,Koa和Hapi。在以后的文章中,我们将研究Next,Nuxt和Nest。

比较基于:

GitHub Stars和npm下载

安装

基本的Hello World应用程序

好处

缺点

性能

安全

社区参与

Express

Express是一个最小且灵活的Web应用程序框架,为Web和移动应用程序提供了一组强大的功能,它的行为就像一个中间件,可以帮助管理服务器和路由

star

GitHub star:+43,000

npm每周下载 6,881,035

安装

确保你已经安装node和npm

//你可以将express安装到项目依赖npminstallexpress–save

// 如果要临时安装Express而不是将其添加到依赖项列表,则可以使用

npm install express --no-save

Hello World

这是关于如何创建一个侦听端口3000并响应“Hello World!”的快速应用程序的最基本示例

// 这里只创建根目录 其他目录返回404constexpress=require(‘express’)constapp=express()constport=3000app.get(’/’,(req,res)=>res.send(‘Hello World!’))app.listen(port,()=>console.log(Example app listening on port ${port}!))

好处

几乎是Node.js Web中间件的标准

简单,简约,灵活和可扩展

快速开发应用程序

完全可定制

学习曲线低

轻松集成第三方服务和中间件

主要关注浏览器,模板和渲染集成开箱即用

缺点

尽管Express.js是一个非常方便且易于使用的框架,但它有一些可能影响开发过程的小缺点。

组织需要非常清楚,以避免在维护代码时出现问题

随着代码库大小的增加,重构变得非常具有挑战性

需要大量的手工劳动,因为您需要创建所有端点

性能

Express是对web应用的一层基本封装,继承了Node.js的特性

当天也有一些express性能的最佳实践包括:

使用gzip压缩

不要使用同步功能

正确记录(用于调试,使用特殊模块,如调试,应用程序活动使用winston或bunyan)

使用try-catch或promises正确处理异常

确保您的应用程序使用流程管理器自动重新启动,或使用systemd或upstartinit等系统

在群集中运行您的应用。您可以通过启动进程集群来大大提高Node.js应用程序的性能

缓存请求结果,以便您的应用不会重复操作以反复提供相同的请求

使用负载均衡器运行它的多个实例并分配流量,如Nginx或HAProxy

对静态资源使用反向代理。它可以处理错误页面,压缩,缓存,提供文件和负载平衡等

更多性能最佳实践

一个简单的“Hello World”应用程序每秒具有以下性能请求:

安全

Node.js漏洞直接影响Express,因此确保使用最新的稳定版Node.js

查看express 最佳安全实践

社区参与

贡献者数量:220

Pull Requests:821

Express社区定期活动包括 Gitter,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值