javascript - 使用请求模块发布表单数据 - Nodejs 和 Express

标签 javascript node.js express

我正在使用一个数据安全平台,他们有这个代码片段显示如何将数据发布到他们的平台:

他们正在使用请求模块:https://github.com/mikeal/request

const request = require('request');

request({
    url: 'https://mypass.testproxy.com/post',
    method: 'POST',
    headers: {'Content-Type': 'application/json'},
    body: JSON.stringify({'secret' : 'secret_value'})
  }, function(error, response, body){
    if(error) {
      console.log(error);
    } else {
      console.log('Status:', response.statusCode);
      console.log(JSON.parse(body));
    }
});

它工作正常,但我想用我的表单数据替换 'secret' : 'secret_value' 对象,但我很难弄清楚如何做到这一点。 我知道如何检索表单数据的唯一方法是使用 req.body:

function(req, res) {
var form = {
  card_number: req.body.card_number,
  card_cvv: req.body.cvv,
  card_expirationDate: req.body.card_expirationDate,
};
    // ...
});

我该怎么做?非常感谢任何帮助。

我知道下面的代码是错误的,但这就是我想要实现的想法:

request( function(req, res) {
var form = {
  card_number: req.body.card_number,
  card_cvv: req.body.cvv,
  card_expirationDate: req.body.card_expirationDate,
};{
    url: 'https://mypass.testproxy.com/post',
    method: 'POST',
    headers: {'Content-Type': 'application/json'},
    body: JSON.stringify(form)
...```



最佳答案

表单数据将以内容类型 application/x-www-form-urlencoded 发送,例如card_number=123&cvv=456

Express 有一个中间件来解析 https://expressjs.com/en/api.html#express.urlencoded

app.use(express.urlencoded());

解析后的值将位于您的发布路由中的 req.body 中。所以例如req.body.card_number 将包含值 123

您可以将请求放在路由中:

app.post('/', function (req, res) {
  var form = { /* ... */ }
  request({
    body: JSON.stringify(form),
    /* ... */
  })
})

关于javascript - 使用请求模块发布表单数据 - Nodejs 和 Express,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61132155/

相关文章:

javascript - 使用 Javascript 和 PHP 在单独的页面上以不同方式设置标题动画

javascript - 理解 Instagram 的实时 api - node.js

node.js - Express JS 路由重定向

javascript - 如何使用 Express 函数从 javascript 页面调用 PHP 页面

javascript - Blueimp 文件上传验证不起作用

javascript - 将已编辑的文件(图像)数组的数组发送到 php 脚本

javascript - 如何在数组中查找对象的索引

node.js - typescript 不加载 Handlebars 文件

javascript - 如何在层之间传递 http 服务器变量,而不是将其用作 node.js 中不同文件中的 require 语句?

node.js - 强制 node.exe 在 Windows 10 上抛出 proxifier