Node4-5靜態(tài)資源服務(wù)器實(shí)戰(zhàn)以及優(yōu)化壓縮文件實(shí)例內(nèi)容
瀏覽器控制臺(tái)看一下RequestHeader有一個(gè)Accept-Encoding,而RespondHeaders中也會(huì)有一個(gè)Content-Encoding和他進(jìn)行對(duì)應(yīng).
Accept-Encoding當(dāng)我們的瀏覽器發(fā)起一個(gè)文件的請(qǐng)求時(shí)告訴服務(wù)器支持哪幾種壓縮方式,也就是服務(wù)器用這幾種壓縮方式瀏覽器都能解壓,當(dāng)服務(wù)器接收到請(qǐng)求后,知道瀏覽器支持的壓縮方式,服務(wù)器就會(huì)自動(dòng)識(shí)別其中一種進(jìn)行壓縮并且告訴瀏覽器自己用了哪個(gè)方式壓縮,瀏覽器知道后就知道用哪種對(duì)應(yīng)方式解壓了
根據(jù)拓展名限制一下支持的幾鐘壓縮類(lèi)型
defaultConfig.js
壓縮方法 compress,js
//壓縮的方法 /**rs 肯定需要,要知道自己需要壓縮什么 客戶(hù)端(瀏覽器支持哪幾種壓縮類(lèi)型), * req 客戶(hù)端再requestHeader中聲明的 * res 壓縮完成之后,需要告訴瀏覽器使用哪種壓縮類(lèi)型壓縮,方便瀏覽器用對(duì)應(yīng)方式進(jìn)行解壓 * */ const { createGzip, CreateDeflate } = require('zlib') module.exports = (rs, req, res) => { const acceptEncoding = req.headers['accept-encoding']; /* 有兩種情況不能壓縮 1.瀏覽器已經(jīng)聲明不支持任何壓縮方式,拿不到這個(gè)信息 2.拿到的東西里面沒(méi)有服務(wù)器支持 */ if (!acceptEncoding || !acceptEncoding.match(/\b(gzip|deflate)/)) { return rs } else if (acceptEncoding.match(/\bgzip\b/)) { { res.setHeader('Content-Encoding', 'gzip') return rs.pipe(createGzip()) } }else if (acceptEncoding.match(/\bdeflate\b/)) { { res.setHeader('Content-Encoding', 'deflate') return rs.pipe(createGzip()) } } }
route.js 引用compress
運(yùn)行結(jié)果
如果把相關(guān)壓縮的代碼注釋掉
以上就是Node4-5靜態(tài)資源服務(wù)器實(shí)戰(zhàn)_優(yōu)化壓縮文件的全部知識(shí)點(diǎn)內(nèi)容,感謝大家的閱讀和對(duì)腳本之家的支持。
- node靜態(tài)服務(wù)器實(shí)現(xiàn)靜態(tài)讀取文件或文件夾
- Node.js一行代碼實(shí)現(xiàn)靜態(tài)文件服務(wù)器的方法步驟
- 實(shí)戰(zhàn)node靜態(tài)文件服務(wù)器的示例代碼
- 用Nodejs搭建服務(wù)器訪(fǎng)問(wèn)html、css、JS等靜態(tài)資源文件
- 在windows上用nodejs搭建靜態(tài)文件服務(wù)器的簡(jiǎn)單方法
- Node.js靜態(tài)文件服務(wù)器改進(jìn)版
- 使用nodejs、Python寫(xiě)的一個(gè)簡(jiǎn)易HTTP靜態(tài)文件服務(wù)器
- 如何使用Node寫(xiě)靜態(tài)文件服務(wù)器
相關(guān)文章
利用node 判斷打開(kāi)的是文件 還是 文件夾的實(shí)例
今天小編就為大家分享一篇利用node 判斷打開(kāi)的是文件 還是 文件夾的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-06-06關(guān)于Error:EPERM:operation?not?permitted,mkdir...的幾種解決辦法對(duì)比
這篇文章主要給大家介紹了關(guān)于Error:EPERM:operation?not?permitted,mkdir...的幾種解決辦法對(duì)比,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2023-01-01使用Node.js實(shí)現(xiàn)base64和png文件相互轉(zhuǎn)換的方法
這篇文章主要介紹了使用Node.js實(shí)現(xiàn)base64和png文件相互轉(zhuǎn)換的方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-03-03Node.js控制臺(tái)彩色輸出的方法與原理實(shí)例詳解
這篇文章主要給大家介紹了關(guān)于Node.js控制臺(tái)彩色輸出的方法與原理的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Node.js具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12nodejs中向HTTP響應(yīng)傳送進(jìn)程的輸出
這篇文章主要介紹了nodejs中向HTTP響應(yīng)傳送進(jìn)程的輸出 ,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-03-03node thread.sleep實(shí)現(xiàn)示例
這篇文章主要介紹了node thread.sleep實(shí)現(xiàn)示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-06-06Node.js連接MySQL數(shù)據(jù)庫(kù)的操作步驟
在現(xiàn)代 Web 開(kāi)發(fā)中,與數(shù)據(jù)庫(kù)的交互是不可避免的一部分,Node.js提供了許多庫(kù)和模塊,使得連接和操作 MySQL 數(shù)據(jù)庫(kù)變得相對(duì)簡(jiǎn)單,本文將介紹如何使用Node.js連接MySQL數(shù)據(jù)庫(kù),并進(jìn)行一些基本的操作,文中通過(guò)代碼示例介紹的非常詳細(xì),需要的朋友可以參考下2023-11-11簡(jiǎn)單聊一聊Node.js參數(shù)max-old-space-size
簡(jiǎn)單的說(shuō)Node.js就是運(yùn)行在服務(wù)端的JavaScript,下面這篇文章主要給大家介紹了關(guān)于Node.js參數(shù)max-old-space-size的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-01-01使用Node.js寫(xiě)一個(gè)代碼生成器的方法步驟
這篇文章主要介紹了使用 Node.js 寫(xiě)一個(gè)代碼生成器,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-05-05