我将 koa js 与bodyparser一起使用,假设客户端发送正文如下:
{ "first": "1" , "second": "2"}
我想要的是原始正文作为没有更改的字符串(JSON.stringify 更改字段的顺序并删除空格然后我不能使用它)。我尝试使用为我提供正文字符串的raw-body,因此我必须将其解析为 JSON。
是否有任何中间件可以将我的正文作为 json 和原始字符串?
我将 koa js 与bodyparser一起使用,假设客户端发送正文如下:
{ "first": "1" , "second": "2"}
我想要的是原始正文作为没有更改的字符串(JSON.stringify 更改字段的顺序并删除空格然后我不能使用它)。我尝试使用为我提供正文字符串的raw-body,因此我必须将其解析为 JSON。
是否有任何中间件可以将我的正文作为 json 和原始字符串?
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.