在自己的koa2 web项目中,用到了几个模块,感觉都是不错的,特地来分享下这些模块。
一、前言
我们都知道可以通过koa2 工程名的方式来初始化koa2项目,官方为我们增加了koa-bodyparser、koa-josn、koa-router等非常不错的模块,但是,仍不够,所以我将搜集到的有用的包介绍下,当然,有好的包仍然会添加到其中。整个项目在koa2-web-engine ,为了方便查看,使用了原生的方式,欢迎查看。
二、新的模块
将代码克隆到本地并安装依赖后,启动服务器,在3000端口可以看到所有demo。
验证码
svg-captcha是一个验证码的库,他创建了svg格式的验证码,可以在登录时,验证是否是正常的用户登录。
使用十分的简单:
const svgCaptcha = require('svg-captcha'); captcha = svgCaptcha.create();
captcha对象中包含了svg数据和svg上显示的内容,至于是否要大小写强制验证就可以通过配置的方式来增加了。
处理代码位于routes/verificationCode.js中。
密码加密登录
后端主要是利用node-rsa生成公钥和私钥,再将公钥发送给前端,前端利用jsencrypt进行加密后发送给node,node再用私钥解密。
为了性能,我只在服务器启动的时候生成公钥和私钥,以后的请求都是用这队公私钥,他位于utils/RSA.js文件中,解密在routes/login.js中。
更详细的可以查看我的这篇博客:基于node简单实现RSA加解密。
参数类型检测
为了服务器的安全性,服务器对前端发送来的数据肯定是要做校验的,我这使用的joi库。
校验主要靠Joi.validate()方法,第一个参数是要校验的对象数据,第二个参数是数据内每个键对应的数据类型,第三个则是可选的option,返回值是一个对象,该对象下的error字段用于判断此次校验是否成功。
在utils/checkParams.js中,paramsFormat定义了检测类型,当然每个类型都得用joi内置的类型,checkParams()函数就是做检测的地方,将最后的检测结果return出去。
回到routes/joi.js中,利用checkParams()方法检测数据类型,这儿的检测是针对单个的请求,如果要针对所有的请求,可以写成中间件的形式,如utils/middleware.js中,并在app.js中加入以下的就行了:
const middleware = require('./utils/middleware'); middleware.use(app);
防xss
这儿用到的是xss模块,将每次请求到的数据经过xss处理,输出到后端。为此我自己搞了koa2-xss中间件模块,顺带学习了如何发布npm包,感兴趣的可以看下。
日志记录
我是用的是log4js模块,该模块既可以记录到数据库,也可以记录到log文件中,此处我是写到文件中的。
utils/logs.js文件中是log4js的配置,并封装了对外的调用接口,routes/log4js.js中是根据用户发送的请求记录到日志文件中。
定时任务
利用了node-schedule模块,一个系统总会用到定时任务的,node-schedule提供了较为简单的api,使用比较方便。
路由合并
koa2初始化的项目中是将每个路由文件require到app.js中的,当路由文件变多时,管理这些路由就是件麻烦的事,于是引入了koa-compose来管理这些路由文件,只对外暴露一个接口。详细的可以查看routes/index.js文件。
webSocket
websocket在实时性要求比较高的场景下也是会用到的,我们可以利用ws模块实现。更为详细的可以查看我的这篇文章:基于node实现websocket通信。
三、总结
后期用到一些有意思,有用的模块也将加入到koa2-web-engine 中。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
- 第五街的士高《印度激情版》3CD [WAV+CUE][2.4G]
- 三国志8重制版哪个武将智力高 三国志8重制版智力武将排行一览
- 三国志8重制版哪个武将好 三国志8重制版武将排行一览
- 三国志8重制版武将图像怎么保存 三国志8重制版武将图像设置方法
- 何方.1990-我不是那种人【林杰唱片】【WAV+CUE】
- 张惠妹.1999-妹力新世纪2CD【丰华】【WAV+CUE】
- 邓丽欣.2006-FANTASY【金牌大风】【WAV+CUE】
- 饭制《黑神话》蜘蛛四妹手办
- 《燕云十六声》回应跑路:年内公测版本完成95%
- 网友发现国内版《双城之战》第二季有删减:亲亲环节没了!
- 邓丽君2024-《漫步人生路》头版限量编号MQA-UHQCD[WAV+CUE]
- SergeProkofievplaysProkofiev[Dutton][FLAC+CUE]
- 永恒英文金曲精选4《TheBestOfEverlastingFavouritesVol.4》[WAV+CUE]
- 群星《国风超有戏 第9期》[320K/MP3][13.63MB]
- 群星《国风超有戏 第9期》[FLAC/分轨][72.56MB]