有人可以向我解释一下 zlib 库在 Nodejs 中是如何工作的吗?
我是 Nodejs 的新手,我还不确定如何使用缓冲区和流。
我的简单场景是一个字符串变量,我想将字符串压缩或解压缩(放气或膨胀、gzip 或 gunzip 等)到另一个字符串。
即(我希望它如何工作)
var zlib = require('zlib');
var str = "this is a test string to be zipped";
var zip = zlib.Deflate(str); // zip = [object Object]
var packed = zip.toString([encoding?]); // packed = "packedstringdata"
var unzipped = zlib.Inflate(packed); // unzipped = [object Object]
var newstr = unzipped.toString([again - encoding?]); // newstr = "this is a test string to be zipped";
感谢您的帮助:)
最佳答案
对于 2016 年遇到此问题的任何人(并且想知道如何将压缩数据序列化为字符串而不是文件或缓冲区) - 看起来 zlib(自 Node 0.11 起)现在提供了其功能的同步版本,但需要回调:
var zlib = require('zlib');
var input = "Hellow world";
var deflated = zlib.deflateSync(input).toString('base64');
var inflated = zlib.inflateSync(new Buffer(deflated, 'base64')).toString();
console.log(inflated);
语法已更改为简单:
var inflated = zlib.inflateSync(Buffer.from(deflated, 'base64')).toString()
关于string - Nodejs中使用zlib对数据进行压缩和解压,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7625251/