【问题标题】:fs.createReadStream is undefinedfs.createReadStream 未定义
【发布时间】:2020-04-04 14:48:42
【问题描述】:

所以最初我试图使用谷歌云节点客户端来做一些事情。 然后报错

Unhandled Rejection (TypeError): fs.createReadStream is not a function

继续出现。

这是导致此问题的“google-auth-library”中的代码 sn-p

const fs = require("fs");
...
const filePath = path.resolve(this.keyFilename);
const stream = fs.createReadStream(filePath);
await this.fromStreamAsync(stream, this.clientOptions);

我尝试打印出 fs 和 fs.createReadStream,它显示 fs 是一个对象,而 createReadStream 的类型是 undefined。

const fs = require("fs");

console.log( "createReadStream type...");
console.log( typeof fs.createReadStream );

node 版本是 v12.13.1,我正在 Chrome 上运行一个由 create-react-app 初始化的 react 应用程序。

谁能告诉我如何解决这个问题?

【问题讨论】:

  • 我认为您必须提供文件路径作为 createReadStream 的第一个参数。
  • 好吧,我尝试修改谷歌的源代码,'filePath' 确实是我传入的内容。另外,我只是尝试在我的代码中为 createReadStream 提供路径参数,它显示相同的错误...... @NileshJain
  • 尝试单独运行这部分代码以查看代码是否有问题或其他原因导致它,也尝试打印 filePath 并查看它是否确实存在。也看看这个帖子stackoverflow.com/questions/38468205/…也许你有同样的问题。
  • 只需在 google 上搜索错误,您就会得到不同的帖子,并尝试将其与您的情况联系起来。
  • 您不能直接从浏览器写入文件系统。检查这个stackoverflow.com/a/37570044/12232507

标签: node.js reactjs google-cloud-platform fs


【解决方案1】:

您必须导入所有库或模块并正确定义文件路径。

试试下面的代码:

 var fs      = require('fs'),
 path    = require('path'),
 url     = require('url');

 var fileUrl = 'http://beta.business.applane.com/rest/file/download'+ '?token=5437bdb1811dfb0f03ec49a3&filekey=541bc4c909e41ce549567c07';

 var filename,
 filename = path.basename(url.parse(fileUrl).path);

 console.log(filename);
 const t = fs.createWriteStream(path.join(__dirname, filename));
 console.log(t)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-09
    • 2018-04-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多