node.js - 当 header 设置错误时从 body 解析 JSON

标签 node.js express

我使用express.js从服务器接收JSON,该服务器错误地将编码 header 设置为urlencoded。

内容类型:application/x-www-form-urlencoded\r\n

当我尝试解析它时,我收到不同的错误,例如“TypeError:无法将对象转换为原始值”。

如果我使用具有正确 header 的 postman 发送 JSON,则它可以完美地工作。

如何解析这个 JSON?

最佳答案

我不会使用 body-parser。

如果您这样做,它将尝试根据 http header 解码您的正文。

相反,您可以编写自己的中间件,类似于以下内容:

app.use((req, res, next) => {
    req.body = JSON.parse(req.read());
    next();
})

关于node.js - 当 header 设置错误时从 body 解析 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45987300/

相关文章:

javascript - 如何访问其他js文件的express模块​​,express模块​​已经包含在app.js中

javascript - 用于 API 的 NODEJS Express 应用程序生成器

node.js - 使用 Node js 一步步创建 webrtc 视频、语音通话和文件传输 Q-A

node.js - 如果我在嵌套查询函数中设置它,为什么我的 express-session 变量没有被保存?

node.js - SequelizeInstance 对象未在 Express Handlebars View 中呈现(NodeJS、Express)

javascript - NodeJS不断刷新数据库表的数据

node.js - 我们如何将 --max-old-space-size 传递给forever 和 npm run start

node.js - 在 Node.js 中比较来自 MongoDB 的数据

node.js - Node.js 端口选择的意义

node.js - Swagger、Express/Nodejs、Sequelize 如何在应用程序中组合在一起