【发布时间】:2020-03-08 22:09:41
【问题描述】:
我有使用 Node.js 框架的文件和其他我想在不使用它的情况下实现的文件。 当我尝试从我使用 module.exports 的节点文件中将一个类导入到我的 js 文件时,我收到“请求的模块不提供名为 default 的导出”的错误消息。 那么有什么方法可以在我的 JavaScript 中导入 node.js 类吗?
【问题讨论】:
标签: javascript node.js import export
我有使用 Node.js 框架的文件和其他我想在不使用它的情况下实现的文件。 当我尝试从我使用 module.exports 的节点文件中将一个类导入到我的 js 文件时,我收到“请求的模块不提供名为 default 的导出”的错误消息。 那么有什么方法可以在我的 JavaScript 中导入 node.js 类吗?
【问题讨论】:
标签: javascript node.js import export
我认为只有两种方法可以解决您的问题
方法一
模块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
【讨论】: