使用 koa js 检索 body 的字符串和 json

Retrieve both string and json of body using koa js

我在 bodyparser 中使用 koa js,假设客户端像这样发送 body:

{ "first": "1"           , "second": "2"}

我想要的是原始的 body 字符串,没有任何变化(JSON.stringify 改变了字段的顺序并删除了空格,然后我不能使用它)。我尝试使用 raw-body 给我 body 的字符串,所以我必须将它解析为 JSON.

是否有任何中间件给我 body 作为 json 和原始字符串?

如果您同时需要原始字符串和 JSON,请获取字符串,保留一份副本,然后将其解析为 JSON。

var getRawBody = require('raw-body')
app.use(function* (next) {
  var string = yield getRawBody(this.req, {
    length: this.length,
    limit: '1mb',
    encoding: this.charset
  })
  var json = JSON.parse(string)
  // do something with "string"
  // do something with "json"
})

注意:您必须 运行 getRawBody() 反对 this.req,因为那是节点的原始 http request 对象。 this.request 是 koa 特有的,不会工作。