91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

node(koa2) web應用模塊介紹詳解

發布時間:2020-08-31 15:49:18 來源:腳本之家 閱讀:169 作者:2FPS 欄目:web開發

在自己的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 中。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

阿克陶县| 洛南县| 柘城县| 称多县| 洛阳市| 运城市| 太原市| 思南县| 珲春市| 光泽县| 都匀市| 凌海市| 廉江市| 江城| 商城县| 金川县| 大港区| 上犹县| 崇州市| 巴林右旗| 邹城市| 马龙县| 怀仁县| 博野县| 兴和县| 台南市| 息烽县| 兴业县| 渑池县| 双桥区| 宁津县| 宁海县| 阿荣旗| 六盘水市| 永丰县| 海原县| 康马县| 宁阳县| 广宗县| 内黄县| 那曲县|