如何在node.js中发送表单数据

我能够到达服务器,但无法发布我的表单数据。 我应该如何使用https请求发布表单数据? 我正在使用form-data的表单数据库和https请求post调用。 当我运行下面的代码时,我能够到达服务,但是服务给出了一个回应,表示表单数据没有被提交。

var https = require('https'); var FormData = require('form-data'); //var querystring = require('querystring'); var fs = require('fs'); var form = new FormData(); connect(); function connect() { username = "wr"; password = "45!" var auth = 'Basic ' + new Buffer(username + ':' + password).toString('base64'); var options = { hostname: 'trans/sun.com', port: 443, path: '/transfer/upload-v1/file', method: 'POST', rejectUnauthorized: false, headers: { 'Authorization': auth, 'Content-Type': 'application/json', //'Content-Length': postData.length } }; form.append('deviceId', '2612'); form.append('compressionType', 'Z'); form.append('file', fs.createReadStream('/Mybugs.txt')); var req = https.request(options, function(res) { console.log("statusCode: ", res.statusCode); //console.log("headers: ", res.headers); res.setEncoding('utf8'); res.on('data', function(d) { console.log(d) }); }); req.write(form + ''); req.end(); req.on('error', function(e) { console.error(e); }); } 

你永远不要把你的表格连接到你的请求。 检查这个与表单数据文档一起提供的示例

 var http = require('http'); var request = http.request({ method: 'post', host: 'example.org', path: '/upload', headers: form.getHeaders() }); form.pipe(request); request.on('response', function(res) { console.log(res.statusCode); });