如何在服务器端的Koa.js中解压缩压缩的请求数据?

时间:2017-06-18 09:56:37

标签: node.js koa koa2

我正在开发一个基于HTTP驱动的基于REST的应用程序,其中项目需要我必须在服务器端接收压缩的 gzipped JSON数据。有几个模块可用于压缩响应并将其发回,但我没有找到任何显示如何解压缩在服务器上接收的请求数据的内容。

1 个答案:

答案 0 :(得分:1)

看起来这可能与koa-bodyparser开箱即用。引擎koa-bodyparser使用co-body来解析请求正文和co-body uses the inflate package to inflates the request body before parsing

以下代码:

const koa = require('koa');
const app = new koa();
const bodyParser = require('koa-bodyparser');

app.use(bodyParser());

app.use(function(ctx) {
  ctx.body = ctx.request.body.test;
})

app.listen(3000);

以及以下请求

curl \
  -H 'content-type: application/json' \
  -H 'Content-Encoding: gzip' \
  -XPOST \
  --data-binary @data.json.gz \
  localhost:3000

使用gzip压缩的data.json(raw看起来如下所示):

{
  "test": "data"
}

一切都按预期工作。