使用 Node.js 保存压缩字符串

Saving a compressed string using Node.js

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

$compressed_text = gzcompress($text, 9);

我想在 Javascript 中用 Node.js 做同样的事情,但我无法让它工作。这是我在 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');
});