javascript - 在 Node 中导出和要求不起作用,说类未定义

标签 javascript node.js module

我有这三个类(class):

类型检查器:

require('./type_error_checker/TypeErrorChecker');
require('./transpiler/Transpiler');

class TypeChecker {
    constructor() {
        console.log("TypeChecker initialised");
    }

    readFile(file) {
        var fs = require("fs");
        var path = require("path");

        var filePath = path.join(__dirname, "readfile.js");

        fs.readFile(filePath, { encoding: "utf-8" }, function(err,data) {
            if (!err) {
                console.log("received data: " + data);
                response.writeHead(200, {"Content-Type": "text/html"});
                response.write(data);
                response.end();
            } else {
                console.log(err);
            }
        });
    }
}

let typeChecker = new TypeChecker();
new TypeErrorChecker();
new Transpiler();

typeChecker.readFile();

类型错误检查器:

class TypeErrorChecker {
    constructor() {
        console.log("TypeErrorChecker initialised");
    }
}

module.exports = TypeErrorChecker;

编译器:

class Transpiler {
    constructor() {
        console.log("TypeChecker transpiler initialised");
    }
}

module.exports = Transpiler;

当我运行需要这两个类(以及 fs 和路径)的 TypeChecker 类时,出现以下错误:

new TypeErrorChecker();
    ^

ReferenceError: TypeErrorChecker is not defined at Object.<anonymous (/Applications/AMPPS/www/TypeCheckerJS_nowp/src/typechecker.js:29:5)
at Module._compile (module.js:573:32)
at Object.Module._extensions..js (module.js:582:10)
at Module.load (module.js:490:32)
at tryModuleLoad (module.js:449:12)
at Function.Module._load (module.js:441:3)
at Module.runMain (module.js:607:10)
at run (bootstrap_node.js:382:7)
at startup (bootstrap_node.js:137:9)
at bootstrap_node.js:497:3

我正确导出类并尝试实例化它们,但这是我得到的错误。知道如何解决这个问题吗?

最佳答案

您需要声明 TypeErrorCheckerTranspiler 变量。尝试更新

require('./type_error_checker/TypeErrorChecker');

进入

const TypeErrorChecker = require('./type_error_checker/TypeErrorChecker');

对于Transpiler也是如此

关于javascript - 在 Node 中导出和要求不起作用,说类未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43609206/

相关文章:

templates - node.js jade 模板 - 自定义语法和替换?

node.js - Node js在ssh2中设置ssh超时

perl - 如何在加载的模块中使用 Smart::Comments 而不更改其源?

python - 与导入的模块共享调用者的命名空间

javascript - 如何获取新数据以响应 Redux 对 React Router 的更改?

javascript - 使用一个变量检查​​多个输入字段

node.js - Node - 意外标识符

linux - 在 tcsh 的 PERL 中将非标准库添加到 @inc

javascript - 评估函数声明范围之外的变量

javascript - 使用 jQuery 创建具有特定类的元素的链接