使用Node.js保存压缩的string

现在,我正在使用gzcompress压缩一些数据并将其保存到PHP文件中。 这是我的PHP代码。 我将这个压缩的string保存到一个文件,然后使用zlib从iOS打开它。

 $compressed_text = gzcompress($text, 9); 

我想用Node.js在JavaScript中做同样的事情,但我不能得到它的工作。 这是我在Javascript中试图做的。

 var input = new Buffer(text); zlib.deflate(input, function(error, output) { var compressed_text = output.toString('ascii'); }); 

使用Node.js无法从iOS解压缩这些数据。 它适用于PHP,但我不能让它在Node.js工作。 我应该用不同的方法而不是deflate吗?

zlib的输出是二进制的,所以你需要一些保留字节的方法。 在节点中,最简单的方法就是将其保存为一个Buffer 。 既然你提到把这个保存到一个文件,你可以这样做

 fs.writeFile(path, output, (err) => { if (err) throw err; console.log('Wrote data to disk'); });