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() 获取缓冲区吗?
使用 Fetch API 和 fs.createWriteStream 对文件进行流式响应