代码之家  ›  专栏  ›  技术社区  ›  Berry Blue

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

  •  2
  • Berry Blue  · 技术社区  · 7 年前

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

    $compressed_text = gzcompress($text, 9);
    

    我正在用Javascript和Node做同样的事情。但是我不能让它工作。下面是我在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 ?

    1 回复  |  直到 7 年前
        1
  •  1
  •   mscdex    7 年前

    zlib输出是二进制的,因此需要某种方法保持字节不变。在node中,最简单的方法是将其作为 Buffer

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