1

我将 koa js 与bodyparser一起使用,假设客户端发送正文如下:

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

我想要的是原始正文作为没有更改的字符串(JSON.stringify 更改字段的顺序并删除空格然后我不能使用它)。我尝试使用为我提供正文字符串的raw-body,因此我必须将其解析为 JSON。

是否有任何中间件可以将我的正文作为 json 和原始字符串?

4

1 回答 1

2

If you want both the raw string and the JSON, get the string, keep a copy, then parse it to 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"
})

Note: You have to run getRawBody() against this.req, since that's node's raw http request object. this.request is koa-specific and won't work.

于 2015-07-24T15:36:28.910 回答