fs.createReadStream()等效于Node中的远程文件

Aar*_*die 18 node.js

在Node中为fs.createReadStream()提供了远程文件的equivelate方法吗?使用如下抛出Unhandled 'error' event

var s = fs.createReadStream('some_mp3_url');
Run Code Online (Sandbox Code Playgroud)

Ric*_*asi 56

节点不是PHP :)

使用请求模块:

request('http://fromrussiawithlove.com/baby.mp3').pipe(fs.createWriteStream('song.mp3'))
Run Code Online (Sandbox Code Playgroud)

  • "节点不是PHP" - 你让我的一天:-)) (10认同)

smh*_*mhg 14

最好使用像请求这样的模块,但你可以这样做:

ES6版本

http.get('some_mp3_url', res => res.pipe(fs.createWriteStream('some.mp3')));
Run Code Online (Sandbox Code Playgroud)

ES5版本

http.get('some_mp3_url', function (res) {
  res.pipe(fs.createWriteStream('some.mp3'));
});
Run Code Online (Sandbox Code Playgroud)

注意:此外fs,还必须导入/或要求http(或https)模块.

  • 一个例子:http/https处理.您需要在上面的示例中自己执行此操作.'httpt'模块不处理https.'请求'为你做这件事.还有很多其他用例可以提供显着的额外价值. (4认同)
  • 是的,但我更喜欢没有 22 个依赖项,谢谢。 (2认同)
  • 我认为您应该考虑跳到请求模块之前不使用本机http请求的原因。截至目前,请求模块有+600个问题,其中一个问题正在影响我的应用在生产中。切换回本机http请求解决了我的问题。我喜欢控制正在发生的事情,而不是一直依赖于依赖来玩得很好,imo。 (2认同)