Node.js 使用膝关节炎检索体的字符串和JSON 我使用膝关节炎,假设客户端发送这样的身体: { "first": "1" , "second": "2"}
我想要的是作为字符串的原始主体,不做任何更改(JSON.stringify更改字段的顺序并删除空格,然后我就不能使用它)。我试着使用它来获得body的字符串,所以我必须将它解析为JSONNode.js 使用膝关节炎检索体的字符串和JSON 我使用膝关节炎,假设客户端发送这样的身体: { "first": "1" , "second": "2"},node.js,middleware,koa,body-parser,Node.js,Middleware,Koa,Body Parser,我想要的是作为字符串的原始主体,不做任何更改(JSON.stringify更改字段的顺序并删除空格,然后我就不能使用它)。我试着使用它来获得body的字符串,所以我必须将它解析为JSON var getRawBody = require('raw-body') app.use(function* (next) { var string = yield getRawBody(this.req, { length: this.length, limit: '1mb', e
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"
})
是否有中间件将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"
})
注意:您必须针对
this.req
运行getRawBody()
,因为这是节点的原始http请求
对象this.request
是特定于koa的,不会起作用。是的,我知道这一点(在问题中写道),我正在寻找一种不将字符串解析为json或将json转换为字符串的方法。谢谢你的回复。你所要求的并不是一个典型的用例,而且它的内存占用是原来的两倍,而且只需要一行额外的代码。因此,不太可能存在预先打包的解决方案。手动操作(如上所示)几乎是您唯一的选择。即使有一个预打包的解决方案,它也会在幕后做同样的事情(将字符串解析为JSON)。