`
sillycat
  • 浏览: 2567263 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

NodeJS12 and Zlib

 
阅读更多
NodeJS12 and Zlib

It works as it should be as follow index.js
const zlib = require('zlib');
const input = 'hello carl, how are you?';
zlib.deflate(input, function(err, buffer) {
  if (!err) {
    console.log(buffer.toString('base64'));
  }
});
const buffer = Buffer.from('eJzT0yMAAGTvBe8=', 'base64');
zlib.unzip(buffer, function(err, buffer) {
  if (!err) {
    console.log(buffer.toString());
  }
});

> node index.js
eJzLSM3JyVdITizK0VHIyC9XSCxKVajML7UHAGvnCIU=
.................................

Convert the callback mode to async await mode
const zlib = require('zlib');

const input = 'hello carl, how are you doing?';

(async () => {
    const output = await new Promise((resolve, reject) => {
            zlib.deflate(input, function(err, buffer) {
              return void err ? reject(err) : resolve(buffer.toString('base64'))
            })
          });
    console.log(output);

    const buffer = Buffer.from(output, 'base64');
   
    const resp = await new Promise((resolve, reject) => {
            zlib.unzip(buffer, function(err, buffer) {
              return void err ? reject(err) : resolve(buffer.toString())
            });
          });
    console.log(resp);
})();


> node index.js
eJzLSM3JyVdITizK0VHIyC9XSCxKVajML1VIyc/MS7cHAKaqCrY=
hello carl, how are you doing?

Handle both gzip data or text data with base64
const zlib = require('zlib');

const input = 'Hello World';
const base64Input = Buffer.from("Hello World").toString('base64');

(async () => {
    const outputZip = await new Promise((resolve, reject) => {
            zlib.deflate(input, function(err, buffer) {
              return void err ? reject(err) : resolve(buffer.toString('base64'))
            })
          });
    console.log(outputZip);

    console.log(base64Input);

    //console.log(Buffer.from("Hello World").toString('base64'));
    //console.log(Buffer.from("SGVsbG8gV29ybGQ=", 'base64').toString());

    const rawInput = Buffer.from(base64Input, 'base64');
   
    const resp = await new Promise((resolve, reject) => {
            zlib.unzip(rawInput, function(err, buffer) {
              return void err ? reject(err) : resolve(buffer ? buffer.toString() : rawInput.toString());
            });
          });
    console.log(resp);
})();


> node index.js
eJzzSM3JyVcIzy/KSQEAGAsEHQ==
SGVsbG8gV29ybGQ=
Hello World


References:
https://millermedeiros.github.io/mdoc/examples/node_api/doc/zlib.html
https://stackoverflow.com/questions/12148948/how-do-i-ungzip-decompress-a-nodejs-requests-module-gzip-response-body
https://nodejs.org/docs/latest-v12.x/api/zlib.html

分享到:
评论

相关推荐

    nodeJs 12.22.12-x64-windows版本

    nodeJs 12.22.12-x64-windows版本 nodeJs 12.22.12-x64-windows版本 nodeJs 12.22.12-x64-windows版本 nodeJs 12.22.12-x64-windows版本 nodeJs 12.22.12-x64-windows版本

    rh-nodejs12-nodejs-12.16.1-1.el7.x86_64.rpm

    官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装

    rh-nodejs12-nodejs-12.21.0-1.el7.x86_64.rpm

    官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装

    rh-nodejs12-npm-6.14.13-12.22.2.1.el7.x86_64.rpm

    官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装

    nodejs.pdf nodejs初级教程 nodejs初级教程

    nodejs初级教程

    nodejs14.9.0

    nodejs14.9.0

    nodejs oauth 2 例子代码

    nodejs 搭建oauth服务器的代码 Install nodejs and npm and then, simply run npm install and npm start. The server should now be running at http://localhost:3000.

    NodeJS_v12.14.0_doc_cn.chm

    NodeJS 中文文档 (Node.js v12.14.0) 源网址:http://nodejs.cn/api/

    jouryfirst#weekly-1#113.精读《Nodejs V12》1

    1.引言Node12 发布有几个月了,让我们跟随 Nodejs 12 一起看看 Node12 带来了哪些改变。2. 概述Node12 与以往的版本不同,带来了许

    NodeJS学习笔记和代码

    NodeJS是一种基于Chrome V8引擎的JavaScript运行环境,它允许开发者在服务器端使用JavaScript进行编程。这个"NodeJS学习笔记和代码"的压缩包显然包含了帮助初学者掌握NodeJS基础知识和实践技能的所有必要资料。 ...

    nodejs:NodeJS示例项目

    节点js NodeJS示例项目

    快速部署puppeteer到阿里云函数计算,支持nodejs12和custom_container

    快速部署puppeteer到阿里云函数计算,支持nodejs12和custom_container_start-puppeteer

    基于nodejs的西餐外卖系统和微信小程序源码

    基于nodejs的西餐外卖系统和微信小程序源码基于nodejs的西餐外卖系统和微信小程序源码基于nodejs的西餐外卖系统和微信小程序源码基于nodejs的西餐外卖系统和微信小程序源码基于nodejs的西餐外卖系统和微信小程序源码...

    NodeJS整理手册文档

    NodeJS是一种基于Chrome V8引擎的JavaScript运行环境,它允许开发者在服务器端使用JavaScript进行编程,从而打破了JavaScript只能在浏览器中运行的传统。本"NodeJS整理手册文档"旨在为对NodeJS感兴趣的朋友们提供一...

    NodeJS开发指南_nodejs开发指南_

    NodeJS是一种基于Chrome V8引擎的JavaScript运行环境,它允许开发者使用JavaScript进行服务器端编程,打破了JavaScript只能在浏览器中运行的传统。本指南将深入探讨NodeJS的核心概念、开发工具、模块系统、网络编程...

    Idea 配置前端web nodejs项目

    Idea 配置前端 Web Nodejs 项目 Idea 配置前端 Web Nodejs 项目是指在 IntelliJ IDEA 集成开发环境中配置 Nodejs 项目的步骤。下面我们将详细讲解配置的步骤和相关知识点。 Idea 配置 Nodejs 项目 首先,我们需要...

    NodeJs技术经典文档

    资源名称:NodeJs技术经典文档资源目录:【】Node.js开发指南_中文正版【】nodejs开发指南pdf及源码及win安装程序【】nodejs手册中文【】NodeJs教程【】umav4simple【】七天学会NodeJS【】七天学会NodeJS【】深入浅...

    NodeJS中文文档精编.pdf 全文免费

    NodeJS中文文档精编.pdf 全文免费 NodeJS是 JavaScript 运行时环境,可以让 JavaScript 代码在服务器端执行。NodeJS 实际上是对 ES 标准的一个实现,同时 Node 也是一个 JS 引擎。 Node 只对 ES 标准进行了实现,...

    Learn With Angular 4, Bootstrap, and NodeJS epub

    Learn With Angular 4, Bootstrap, and NodeJS 英文epub 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn删除

Global site tag (gtag.js) - Google Analytics