【问题标题】:Import class from Node.js in normal JavaScript在普通 JavaScript 中从 Node.js 导入类
【发布时间】:2020-03-08 22:09:41
【问题描述】:

我有使用 Node.js 框架的文件和其他我想在不使用它的情况下实现的文件。 当我尝试从我使用 module.exports 的节点文件中将一个类导入到我的 js 文件时,我收到“请求的模块不提供名为 default 的导出”的错误消息。 那么有什么方法可以在我的 JavaScript 中导入 node.js 类吗?

【问题讨论】:

    标签: javascript node.js import export


    【解决方案1】:

    我认为只有两种方法可以解决您的问题

    方法一

    模块1.js

    class HelloWorld {
      getHelloWorld() {
        return 'Hello World';
      }
    }
    
    module.exports = HelloWorld
    

    模块2.js

    const HelloWorld = require('./module1.js');
    const helloWorld = new HelloWorld();
    

    方法 2 节点 (扩展文件:.msj 并像 node --experimental-modules module2.mjs 一样运行它)

    module1.mjs

    export default class HelloWorld {
        getHelloWorld() {
            return 'Hello World';
        }
    }
    

    module2.msj

    import HelloWorld from './module1.mjs';
    const helloWorld = new HelloWorld();
    console.log(helloWorld.getHelloWorld());
    

    方法2 节点>= v13(扩展文件:.msj 或在package.json 中添加{ "type": "module" }

    如果您在package.json 中添加{ "type": "module" },则为module1.mjs 或module1.js

    export default class HelloWorld {
        getHelloWorld() {
            return 'Hello World';
        }
    }
    

    如果在package.json 中添加{ "type": "module" },则为module2.mjs 或module2.js

    import HelloWorld from './module1.mjs';
    const helloWorld = new HelloWorld();
    console.log(helloWorld.getHelloWorld());
    

    注意:如果您有兴趣了解“module.exports 与 export default”之间的区别,本主题可以帮助您module.exports vs. export default in Node.js and ES6

    【讨论】:

      猜你喜欢
      • 2019-02-16
      • 2022-10-19
      • 1970-01-01
      • 2020-06-27
      • 1970-01-01
      • 2018-11-27
      • 2023-01-01
      • 1970-01-01
      • 2021-03-19
      相关资源
      最近更新 更多