使用 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 特有的,不会工作。
我在 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 特有的,不会工作。