如何发送带有请求承诺的表单?

nbr*_*ing 2 javascript node.js 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'
});
Run Code Online (Sandbox Code Playgroud)

此代码来自以下问题: 在Node.js中使用POST请求上传文件但是它没有使用promises.

任何人都可以解释如何做同样的事情,但与请求承诺库或如果有任何其他方式来宣传这个?

Ber*_*rgi 6

根据您已经找到的答案链接的文档,您不需要.form()在生成的请求对象上使用方法,但可以简单地将表单作为formData选项传递给request.您将能够对请求承诺执行相同的操作:

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!');
});
Run Code Online (Sandbox Code Playgroud)

或者,请求 - 承诺似乎仍然返回请求实例(仅使用then/ 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!');
});
Run Code Online (Sandbox Code Playgroud)