如何在 Node 服务器上读取以 application/x-www-form-urlencoded 格式接收的数据?

新手上路,请多包涵

我在 webhook URL 上接收数据作为 POST 请求。请注意,此请求的内容类型是 application/x-www-form-urlencoded

这是一个服务器到服务器的请求。在我的节点服务器上,我只是尝试使用 req.body.parameters 读取接收到的数据,但结果值是 “未定义”

那么如何读取数据请求数据呢?我需要解析数据吗?我需要安装任何 npm 模块吗?你能写一个代码片段来解释这个案例吗?

原文由 Sowmay Jain 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.2k
2 个回答

如果您使用 Express.js 作为 Node.js Web 应用程序框架,请使用 ExpressJS body-parser

示例代码将是这样的。

 var bodyParser = require('body-parser');
app.use(bodyParser.json()); // support json encoded bodies
app.use(bodyParser.urlencoded({ extended: true })); // support encoded bodies

// With body-parser configured, now create our route. We can grab POST
// parameters using req.body.variable_name

// POST http://localhost:8080/api/books
// parameters sent with
app.post('/api/books', function(req, res) {
    var book_id = req.body.id;
    var bookName = req.body.token;
    //Send the response back
    res.send(book_id + ' ' + bookName);
});

原文由 samith 发布,翻译遵循 CC BY-SA 3.0 许可协议

您必须使用特定的中间件告诉 express 处理 urlencoded 数据。

 const express = require('express');
const app = express();

app.use(express.urlencoded({
    extended: true
}))

在您的路线上,您可以从请求正文中获取参数:

 const myFunc = (req,res) => {
   res.json(req.body);
}

原文由 joao 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题