Node.js I';我正在尝试将这个字符串转换成gzip

Node.js I';我正在尝试将这个字符串转换成gzip,node.js,gzip,zlib,Node.js,Gzip,Zlib,我正在使用Node.JS,并试图转换如下所示的字符串 {"blocks":[{"id":"block","block":"event","args":{"items":[]},"action":"Join"},{"id":"block","block":&qu

我正在使用Node.JS,并试图转换如下所示的字符串

{"blocks":[{"id":"block","block":"event","args":{"items":[]},"action":"Join"},{"id":"block","block":"player_action","args":{"items":[{"item":{"id":"txt","data":{"name":"hi"}},"slot":0},{"item":{"id":"bl_tag","data":{"option":"Add spaces","tag":"Text Value Merging","action":"SendMessage","block":"player_action"}},"slot":25},{"item":{"id":"bl_tag","data":{"option":"Regular","tag":"Alignment Mode","action":"SendMessage","block":"player_action"}},"slot":26}]},"action":"SendMessage"}]}
var deflated = zlib.deflateSync('{"blocks":[{"id":"block","block":"event","args":{"items":[]},"action":"Join"},{"id":"block","block":"player_action","args":{"items":[{"item":{"id":"txt","data":{"name":"hi"}},"slot":0},{"item":{"id":"bl_tag","data":{"option":"Add spaces","tag":"Text Value Merging","action":"SendMessage","block":"player_action"}},"slot":25},{"item":{"id":"bl_tag","data":{"option":"Regular","tag":"Alignment Mode","action":"SendMessage","block":"player_action"}},"slot":26}]},"action":"SendMessage"}]}').toString('base64');
var inflated = zlib.inflateSync(new Buffer(deflated, 'base64')).toString();

console.log(inflated);
使用zlib进入Gzip 我已经尝试过如下关于堆栈溢出的一些答案

{"blocks":[{"id":"block","block":"event","args":{"items":[]},"action":"Join"},{"id":"block","block":"player_action","args":{"items":[{"item":{"id":"txt","data":{"name":"hi"}},"slot":0},{"item":{"id":"bl_tag","data":{"option":"Add spaces","tag":"Text Value Merging","action":"SendMessage","block":"player_action"}},"slot":25},{"item":{"id":"bl_tag","data":{"option":"Regular","tag":"Alignment Mode","action":"SendMessage","block":"player_action"}},"slot":26}]},"action":"SendMessage"}]}
var deflated = zlib.deflateSync('{"blocks":[{"id":"block","block":"event","args":{"items":[]},"action":"Join"},{"id":"block","block":"player_action","args":{"items":[{"item":{"id":"txt","data":{"name":"hi"}},"slot":0},{"item":{"id":"bl_tag","data":{"option":"Add spaces","tag":"Text Value Merging","action":"SendMessage","block":"player_action"}},"slot":25},{"item":{"id":"bl_tag","data":{"option":"Regular","tag":"Alignment Mode","action":"SendMessage","block":"player_action"}},"slot":26}]},"action":"SendMessage"}]}').toString('base64');
var inflated = zlib.inflateSync(new Buffer(deflated, 'base64')).toString();

console.log(inflated);
但是我得到了一个错误:

{"blocks":[{"id":"block","block":"event","args":{"items":[]},"action":"Join"},{"id":"block","block":"player_action","args":{"items":[{"item":{"id":"txt","data":{"name":"hi"}},"slot":0},{"item":{"id":"bl_tag","data":{"option":"Add spaces","tag":"Text Value Merging","action":"SendMessage","block":"player_action"}},"slot":25},{"item":{"id":"bl_tag","data":{"option":"Regular","tag":"Alignment Mode","action":"SendMessage","block":"player_action"}},"slot":26}]},"action":"SendMessage"}]}
(node:25548) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.
(Use `node --trace-deprecation ...` to show where the warning was created)
这就是我试图实现的目标(这是在它被建立之后)
h4siaaaaaaaaaa/6VRsQrCMBD9lXKzgwg6ZHMVuqi4iJRrc8RgmpQmFaX03720RSviIE7JvXvv3rukhdy44uJBHFvQEsRQw2w8BdCVbOAaa8UsJgUqI/3UMVYE7SyTNk5b6GZfRlQG71RnI/tz1HDrkSgPt+gnmwceljbe4fldx47euabi3ltbnjaqqjfjvjtlwia+jtwia/dywp1didasklqlqlqlzlqlqrzlqlqrqlqlqlqlqljjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjlqlzzzzzzzzz

除了警告不要使用
缓冲区之外,正如derpischer评论的那样,您可以使用
缓冲区进行修复。从


TLDR:gzip!=deflate--但是abs(gzip deflate)我没有看到错误,我只看到了一个弃用警告。它记录了gzip字符串。那么警告之前的行是什么?请注意,您只向控制台写入
充气的
,而不是
放气的
。这不是错误,而是警告。您可以使用
Buffer.from()
绕过它。它不会记录gzip的结果,因为您正在执行
deflateSync
(即压缩),然后执行
inflateSync
(即解压缩),并且只记录解压缩的结果。您必须执行
console.log(deflated)
以注销压缩字符串。顺便说一句,您的预期结果似乎不是源自zlib压缩的缓冲区,因为它在
inflateSync上抛出了一个错误