我正在使用一个数据安全平台,他们有这个代码片段显示如何将数据发布到他们的平台:
他们正在使用请求模块: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/