对象不支持属性或方法“ readFile”(节点:fs)

时间:2019-10-08 20:39:57

标签: reactjs typescript fs

TypeError:对象不支持属性或方法“ readFile”

我刚刚创建了一个全新的react应用,但这正在发生... 我不知道还能做什么。

import * as React from "react";
import * as fs from "fs";
import * as zlib from 'zlib';


    constructor(props: IReactComponentProps, state: IReactComponentState) {
        super(props, state);
        this.jsonPath = "/myfolder/mygzipedjsonfile.json.gz";

        this.state = {
            loading: true,
            error: false,
        };

        this.test();
    }

    private test() {

        fs.readFile(this.jsonPath, function (err, buffer) {
            console.log('success');
        });
    }

错误:TypeError:对象不支持属性或方法“ readFile”

ReactComponent.prototype.test
C:/Source/new-teste/src/ReactComponent.tsx:44
  41 | 
  42 |    private test() {
  43 | 
> 44 |        fs.readFile(this.jsonPath, function (err, buffer) {
     |        ^

1 个答案:

答案 0 :(得分:2)

您不能在客户端使用fsfs是低级(OS)特定于Node.js的程序包,因此无法在浏览器中运行以保护文件系统免受潜在的安全威胁。根据经验,我在服务器端进行所有文件处理,因此我使用zlib,但是它还是特定于node.js的。我可以建议使用pako,这是客户端javascript的zlib端口,并使用ungzip()inflate()函数解压缩json文件。解压缩后,您只需将结果文件导入到代码中,如下所示:

import jsonFile from 'resultingFile.json'