node.js - 使用 koa js 检索正文的字符串和 json

标签 node.js middleware koa body-parser

我使用 koa js 和 bodyparser ,假设客户端发送这样的正文:

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

我想要的是原始正文作为字符串,没有任何更改(JSON.stringify 更改字段的顺序并删除空格,然后我无法使用它)。我尝试使用raw-body这给了我主体字符串,所以我必须将其解析为 JSON。

是否有任何中间件可以为我提供 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(),因为这是 Node 的原始 http request 对象。 this.request 是 koa 特定的,无法工作。

关于node.js - 使用 koa js 检索正文的字符串和 json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31566406/

相关文章:

node.js - 我可以覆盖 Express 中的路线吗?

node.js - 如何在 Mongoose 中以数组格式填充值

java - 当有多个温度产生器时计算平均温度

php - 在 Laravel 5 中缓存整个 HTML 响应

node.js - 多部分文件上传问题

node.js - 对于 Node.js 的 Passport-Local,是否可以使用电子邮件而不是用户名进行身份验证?

mongodb - 使用 mapReduce 选择一行中的所有字段

javascript - 具有 JSON 和二进制数据传递功能的 Express Body Parser

javascript - KOA 中的 POST 请求未定义请求正文

koa - 为什么在 koa 上需要不止一个 key ?