Javascript 流式处理“请求”请求的正确方法?

Javascript 流式处理“请求”请求的正确方法?,javascript,node.js,mailgun,Javascript,Node.js,Mailgun,我正在尝试从请求创建一个ReadableStream对象,最终我希望将其传递到的数据对象的附件变量中: var fileStream = null; request(String(url)).pipe(fileStream); msg.attachment = new mailgun.Attachment({ data: fileStream, filename: 'my_custom_name.png', knownLength: fileStat.size,

我正在尝试从
请求创建一个ReadableStream对象,最终我希望将其传递到的数据对象的附件变量中:

var fileStream = null;
request(String(url)).pipe(fileStream);

msg.attachment = new mailgun.Attachment({
    data: fileStream,
    filename: 'my_custom_name.png',
    knownLength: fileStat.size,
    contentType: 'image/png'});

正确的方法是什么?

未经测试,但值得一试:

var stream = new require('stream').PassThrough();

request(String(url)).pipe(stream);

msg.attachment = new mailgun.Attachment({
  data        : stream,
  filename    : 'my_custom_name.png',
  knownLength : fileStat.size,
  contentType : 'image/png'
});
request()
似乎不是从
Stream
继承的,因此直接将其作为
数据
属性传递将不起作用。相反,创建了一个流,它继承了
可读的
可写的


Mailgun类将使用
可读的部分,而
可写的部分将通过管道将HTTP响应数据传输到其中。

我知道这有点晚了,但希望仍然有用。刚刚提交了一个请求以获得此功能:

var request = require('request');
var file = request("https://www.google.ca/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png");

var data = {
  from: 'Excited User <me@samples.mailgun.org>',
  to: 'serobnic@mail.ru',
  subject: 'Hello',
  text: 'Testing some Mailgun awesomness!',
  attachment: file
};

mailgun.messages().send(data, function (error, body) {
  console.log(body);
});
var request=require('request');
var file=请求(“https://www.google.ca/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png");
风险值数据={
发件人:'兴奋用户',
致:'serobnic@mail.ru',
主题:“你好”,
文字:“测试一些邮枪的威严!”,
附件:档案
};
mailgun.messages().send(数据、函数(错误、正文){
控制台日志(主体);
});
如果未合并,您可以在此处看到:

我已经有一段时间没有完成这个任务了,但我想我也做了类似的事情来解决它。谢谢太好了,谢谢!希望它能被接受。