简介
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,