通过nodejs下载响应POST请求发送的文件? (没有AJAX)

我有一个nodejs服务器不时提交一个post表单到我无法控制的外部第三方服务器,因此我无法执行AJAX请求。 我也不能使用得到。

当我在浏览器中运行代码时,发布的请求会自动下载到默认位置。

如何将文件下载到nodejs中的服务器文件系统?

当前请求: $form.submit()

我发布的表单:

 var $form = $('<form/>', { method: 'post', id: 'myForm', name: 'myForm', action: 'example.example' }); var csvInput=$('<input/>', {name: 'myValue', value: 'Empty', type: 'hidden'}); $form.append(csvInput) $form.append($('<input/>', {name: 'test X', value: '1', type: 'hidden'})); $form.append($('<input/>', {name: 'test Y', value: '2', type: 'hidden'})); $form.append($('<input/>', {name: 'test Z', value: '3', type: 'hidden'})); 

(接近30个input字段)

通过使用request函数和fd的键值数组解决它。

 request({ method: 'POST', uri: 'http://example.com/', headers: { host: 'example.com', 'content-type': 'application/x-www-form-urlencoded' }, body: $.param(fd)} ).pipe(fs.createWriteStream('myfile.csv')) 

如果您正在使用请求模块,则可以将结果传送到文件中。

 var formData = { myValue: 'Empty', testX: '1', testY: '2', 'test Z': '3' }; request.post('http://example.example', {form: formData}).pipe(fs.createWriteStream('./myfile.txt'))