【问题标题】:Include es6 class from external file in Node.js在 Node.js 中包含来自外部文件的 es6 类
【发布时间】:2016-08-17 20:03:37
【问题描述】:

假设我有一个文件class.js:

class myClass {
   constructor(arg){
      console.log(arg);
   }
}

我想在另一个文件中使用myClass 类。我该怎么办?
我试过了:
var myClass = require('./class.js');
但它没有用。
我查看了module.exports,但没有找到适用于 es6 类的示例。

【问题讨论】:

    标签: javascript node.js


    【解决方案1】:

    随便

    module.exports = class MyClass {
        constructor(arg){
            console.log(arg);
        }
    };
    

    并导入

    var a = require("./class.js");
    new a("fooBar");
    

    或使用新的语法(可能需要您先对代码进行 babelify)

    export class MyClass {
        constructor(arg){
            console.log(arg);
        }
    };
    

    并用

    导入
    import {myClass} from "./class.js";
    

    【讨论】:

    • 我收到“无法在模块外使用 import 语句”
    【解决方案2】:
    export default class myClass {
       constructor(arg){
          console.log(arg);
       }
    }
    

    其他文件:

    import myClass from './myFile';
    

    【讨论】:

    • 这对我不起作用。我怀疑我有一个过时的节点版本。
    • @BaldBantha 这是因为这是新的 ES6 语法,您需要使用 babel 将 ES6 转换为 ES5,以便节点可以运行它。 Node 不支持import/export 并且永远不会(至少在不久的将来)
    【解决方案3】:
    export class MyClass
    {
       constructor(arg){
        this.arg = arg;
    }
    }
    
    import {MyClass} From'./MyClass.js'
    
    class OtherClass{
     arg_two;
    
    }
    
    import {OtherClass} From'./OtherClass.js'
    
    class1 = new OtherClass();
    class1.arg_two.arg = 'class';
    
    console.log(class1.arg_two.arg);
    

    【讨论】:

    • 请不要只发布代码作为答案,还要解释您的代码的作用以及它如何解决问题的问题。带有解释的答案通常更有帮助、质量更好,并且更有可能吸引投票
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-02
    • 2022-01-20
    • 1970-01-01
    • 2011-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多