fs.createwritestream 不是函数

Posted

技术标签:

【中文标题】fs.createwritestream 不是函数【英文标题】:fs.createwritestream is not a function 【发布时间】:2019-07-30 12:21:08 【问题描述】:

我正在尝试开发一个反应应用程序,帮助我将文件下载到我的亚马逊云。 为此我使用了这个模块

下载文件和进度条

这是我的代码:

      var dl            = require('download-file-with-progressbar');
                //-----------Download File-------------------
                option = 
                    filename: 'fileName',
                    dir: os.tmpdir(),
                    onDone: (info)=>
                    console.log('done', info);
                    ,
                    onError: (err) => 
                    console.log('error', err);
                    ,
                    onProgress: (curr, total) => 
                    console.log('progress', (curr / total * 100).toFixed(2) + '%');
                    ,
                

                dd = dl('https://nodejs.org/dist/v6.10.2/node-v6.10.2-linux-x64.tar.gz', this.option);
                //-------------------------------------------

它在 nodejs 项目上运行良好。但是当我在反应项目中使用它(使用'create-react-app'创建)时,它产生了以下错误。

TypeError: fs.createWriteStream 不是函数

我对该项目的想法是创建一个反应应用程序,帮助将文件下载到我的服务器或云空间。如何解决该错误。

【问题讨论】:

你在 react 项目中安装了“download-file-with-progressbar”模块吗? @James Delaney 是的 【参考方案1】:

createWriteStream 是 Nodejs API 的一个函数部分,这就是为什么当您将它作为 nodejs 项目运行时它可以正常工作的原因。

但是当您运行 React 应用程序时,执行代码的是您的浏览器,而不是 nodejs。并且浏览器不知道这个 API。

如果您想从 React 应用程序下载文件,您必须通过 HTTP 请求来完成。例如,您可以使用fetch API。

【讨论】:

以上是关于fs.createwritestream 不是函数的主要内容,如果未能解决你的问题,请参考以下文章

Node.js:检测到一个文件,用 fs.createWriteStream() 打开,被删除

我可以从 fs.createWriteStream() 获取缓冲区吗?

fs.createWriteStream 停顿

使用 Fetch API 和 fs.createWriteStream 对文件进行流式响应

node.js 中与 fs.createWriteStream 关​​联的事件

node.js fs.createWriteStream 创建文件,但无法正确写入