繁体   English   中英

如何使用nodejs以gzip形式将json数据从浏览器发送到REST端点(PUT)?

[英]How to send json data from browser to REST endpoint (PUT) in gzip form using nodejs?

我正在使用 node.js 和快递。 我有我的主页,加载后会点击我的 REST 端点(PUT)发送一些 json 数据。我在发送到 REST 端点时没有压缩数据。但它可能在我的端点上吗? 如果有怎么办?

注意:我想使用客户端的内容编码。 我既不想在客户端也不想在服务器上压缩它。 (甚至不作为中间件,因为它也在服务器上)

您可以在快递服务器中添加中间件 到达您的端点的任何请求都将通过此中间件 go,并且在您的中间件中,您可以压缩您的数据,此压缩数据将转发到您的端点。

如果您需要自动压缩/解压缩来自或通过请求的数据,一种使用方式是request-promise节点模块

 import rp = require("request-promise");
 const requestOptions: rp.Options = {
            uri: "my-endpoint",
            gzip: true,
            method: "GET",
            encoding: "UTF-8",
            headers: {
                Accept: "*/*",
                Authorization: `xxx--token`
            }
        };
 rp(requestOptions)
            .then((response: any) =>
            { // ..your logic to process the response.. }

gzip - 如果为 true,则添加 Accept-Encoding header 以从服务器请求压缩内容编码(如果尚不存在)并在响应中解码支持的内容编码。 注意:响应内容的自动解码是对通过request返回的body数据(通过request stream和传递给回调函数)进行的,但对未修改的响应stream(可从响应事件中获取)即未修改的stream不进行响应内容的自动解码。 .IncomingMessage object 可能包含压缩数据

请求承诺选项

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM