我如何发送表单与请求承诺?

我正在尝试使用request-promise库或类似的任何东西,通过从节点发送到另一台运行Node的机器发送文件。 使用正常的请求模块,我可以这样

var req = request.post(url, function (err, resp, body) { if (err) { console.log('Error!'); } else { console.log('URL: ' + body); } }); var form = req.form(); form.append('file', '<FILE_DATA>', { filename: 'myfile.txt', contentType: 'text/plain' }); 

这个代码来自这个问题: 在Node.js中使用POST请求上传文件,但是它不使用promise。

任何人都可以解释如何做同样的事情,但与请求承诺库,或者如果有任何其他方式promisify呢?

根据已经find的答案链接的文档 ,您不需要在生成的请求对象上使用.form()方法,而只需将form作为formData选项传递给request 。 你可以用request-promise来做同样的事情:

 requestPromise.post({url: url, formData: { file: { value: '<FILE_DATA>', options: { filename: 'myfile.txt', contentType: 'text/plain' } } }).then(function(body) { console.log('URL: ' + body); }, function(err) { console.log('Error!'); }); 

或者,请求承诺似乎仍然返回请求实例(只是用/ catch / promise方法进行修饰),所以form函数仍然可用:

 var req = requestPromise.post(url); var form = req.form(); form.append('file', '<FILE_DATA>', { filename: 'myfile.txt', contentType: 'text/plain' }); req.then(function(body) { console.log('URL: ' + body); }, function(err) { console.log('Error!'); });