本文实例讲述了node.js实现简单的压缩/解压缩功能。分享给大家供大家参考,具体如下:

压缩的例子

非常简单的几行代码,就完成了本地文件的gzip压缩。

var fs = require('fs');

var zlib = require('zlib');

var gzip = zlib.createGzip();

var inFile = fs.createReadStream('./extra/fileForCompress.txt');

var out = fs.createWriteStream('./extra/fileForCompress.txt.gz');

inFile.pipe(gzip).pipe(out);

解压的例子

同样非常简单,就是个反向操作。

var fs = require('fs');

var zlib = require('zlib');

var gunzip = zlib.createGunzip();

var inFile = fs.createReadStream('./extra/fileForCompress.txt.gz');

var outFile = fs.createWriteStream('./extra/fileForCompress1.txt');

inFile.pipe(gunzip).pipe(outFile);

服务端gzip压缩

代码超级简单。首先判断 是否包含 accept-encoding 首部,且值为gzip。

否:返回未压缩的文件。

是:返回gzip压缩后的文件。

var http = require('http');

var zlib = require('zlib');

var fs = require('fs');

var filepath = './extra/fileForGzip.html';

var server = http.createServer(function(req, res){

var acceptEncoding = req.headers['accept-encoding'];

var gzip;

if(acceptEncoding.indexOf('gzip')!=-1){ // 判断是否需要gzip压缩

gzip = zlib.createGzip();

// 记得响应 Content-Encoding,告诉浏览器:文件被 gzip 压缩过

res.writeHead(200, {

'Content-Encoding': 'gzip'

});

fs.createReadStream(filepath).pipe(gzip).pipe(res);

}else{

fs.createReadStream(filepath).pipe(res);

}

});

server.listen('3000');

服务端字符串gzip压缩

代码跟前面例子大同小异。这里采用了**slib.gzipSync(str)**对字符串进行gzip压缩。

var http = require('http');

var zlib = require('zlib');

var responseText = 'hello world';

var server = http.createServer(function(req, res){

var acceptEncoding = req.headers['accept-encoding'];

if(acceptEncoding.indexOf('gzip')!=-1){

res.writeHead(200, {

'content-encoding': 'gzip'

});

res.end( zlib.gzipSync(responseText) );

}else{

res.end(responseText);

}

});

server.listen('3000');

写在后面

deflate压缩的使用也差不多,这里就不赘述。更多详细用法可参考官方文档。

希望本文所述对大家node.js程序设计有所帮助。

electron 解压zip_node.js实现简单的压缩/解压缩功能示例相关推荐

  1. bz2解压命令_Linux下的tar压缩解压缩命令

    tar -c: 建立压缩档案 -x:解压 -t:查看内容 -r:向压缩归档文件末尾追加文件 -u:更新原压缩包中的文件 这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个 ...

  2. 解压技巧: iPhone自带的解压缩功能好强

    我们在工作.生活中经常会收到压缩文件,需要自己解压缩才能打开查看. 大多数人在手机上接收到压缩文件后,都是把文件传到电脑上,解压缩后再传过来,或者是在手机上下载付费解压缩app,真的好麻烦. 分享给大 ...

  3. mac 命令行 解压7z文件_命令行压缩解压缩一 7z

    命令行压缩解压缩一 7z 1) 简介 7z,全称7-Zip, 是一款开源软件.是目前公认的压缩比例最大的压缩解压缩软件. 主页:http://www.7-zip.org/ 中文主页:http://7z ...

  4. 7z001怎么解压在安卓手机上面_安卓zip文件压缩RAR解压手机下载-安卓zip文件压缩RAR解压v1.0最新版下载...

    安卓zip文件压缩RAR解压是一款非常好用的手机压缩解压缩神器,在安卓zip文件压缩RAR解压上我们可以看到很多的实用的功能,软件可以帮助我们更好的处理我们手机中的文件,感兴趣的朋友赶紧下载安卓zip ...

  5. Mac解压Rar,7z,Zip,Winrar?Mac解压缩软件测评,推荐Mac上免费好用的解压软件,高效解压神器帮您解决苹果电脑的解压缩问题

    Mac电脑自带的的Archive Utility无法解压rar格式,如何在Mac上解压Rar,7z呢?Mac上有没有像window一样能下载7zip,winrar这类的解压软件呢,肯定可以.但在主流的 ...

  6. cordova 安卓文件多选_安卓zip文件压缩RAR解压软件下载-安卓zip文件压缩RAR解压下载v3.0.4安卓版...

    安卓zip文件压缩RAR解压是一款非常好用的手机压缩解压缩神器,在安卓zip文件压缩RAR解压上我们可以看到很多的实用的功能,软件可以帮助我们更好的处理我们手机中的文件,感兴趣的朋友赶紧下载安卓zip ...

  7. Linux世界的三种压缩解压方式,zip/unzip方式压缩解压、tar方式压缩解压、jar方式压缩解压暨shopt extglob反选示例

    Linux世界的三种压缩解压方式,zip/unzip方式压缩解压.tar方式压缩解压.jar方式压缩解压暨shopt extglob反选示例 zip/unzip方式.tar方式压缩解压是Linux中的 ...

  8. 使用Java生成的ZIP压缩包解压时出现不可预料的压缩文件末端的解决方案

    使用Java生成的ZIP压缩包解压时出现不可预料的压缩文件末端的解决方案 问题描述: 如下图所示,在解压Java程序生成的ZIP压缩包时出现不可预料的压缩文件末端, 问题分袖: 出现上面的情况,大概有 ...

  9. python读取json配置文件_Python简单读取json文件功能示例

    本文实例讲述了Python简单读取json文件功能.分享给大家供大家参考,具体如下: read_json.json: { "rule":{ "namespace" ...

最新文章

  1. 转载:T-SQL语句大全
  2. wxWidgets:持久对象概述
  3. 诊断SQLSERVER问题常用的日志
  4. 美企调查华为设备安全性,华为发长文质疑;摩根大通预计苹果2020年将推5G iPhone;谷歌拟联手Dish成立美国第四大运营商...
  5. Java之美[从菜鸟到高手演变]之Exception
  6. js中addEventListener第三个参数涉及到的事件捕获与冒泡
  7. 14道Python基础练习题(附答案)
  8. Java算法常见面试题及答案
  9. matlab在神经网络中的应用,应用matlab实现神经网络
  10. Windows下PHP环境的搭建
  11. 【游戏策划】Excel的使用技巧(一)
  12. idea文件夹代颜色代表的含义
  13. windows优化大师怎么用_必读:我们赖以办公、游戏设计用的电脑该如何正确保养维护...
  14. october cms_October CMS静态页面入门
  15. 修改oracle用户密码永不过期的方法
  16. 优秀工程师必备的一项技能,你解锁了吗?
  17. 关于上楼梯问题(斐波那契数列应用)
  18. 谷歌亚马逊或遭英国监管;昔日“大数据第一股”面临退市;特斯拉辅助驾驶系统索赔案胜诉丨每日大事件...
  19. 毕业论文 入侵防御系统在企业网络中的应用
  20. PS图层混合算法之六(差值,溶解, 排除)

热门文章

  1. python直方图与x轴对应不起来_Python Matplotlib绘图与x轴标签正确对齐并匹配系列和错误的颜色...
  2. 车辆动力学及控制_第一届国际轮胎动力学仿真技术峰会在长春举行
  3. 和Leo一起做爱字符串的好孩子之 [SDOI2014]数数
  4. 从CMO到龙泉寺弟子:佛法改变人生
  5. Visual Studio 起始页中不显示最近使用的项目的解决办法
  6. WebDev.WebServer40.exe已停止工作
  7. Interview Common Sample Codes
  8. ADO Entities Framework不对多表查询进行优化?
  9. ETDM:基于显式时间差分建模的视频超分辨率(CVPR 2022)
  10. AI应用说 | 「虫口夺粮」的害虫识别还是牛场24小时无人监控,AI+农业话题咱们唠一唠...