如何导出和导入默认功能

时间:2020-09-25 19:46:24

标签: javascript node.js node-modules

我有一个文件定义了一个“默认”功能,我想将其导入其他文件:

HelloLog.js:

exports.default = (str) => {
    console.log(`Hello, logging ${str}!`);
}

Client.js:

const HelloLog = require('./HelloLog');

HelloLog.default("foobar"); // do not want

// I'd rather just do this:
HelloLog("foobar")

事实是,如果我像上面的第二个电话一样这样做,就会出错。

问题是:我应该如何更改HelloLog.js,以便Client.js文件上的第二个选项起作用?

4 个答案:

答案 0 :(得分:1)

使用 CommonJS Nodejs Docs

导出一个模块:
HelloLog.js:

module.exports = (str) => {
    console.log(`Hello, logging ${str}!`);
}

Client.js:

const HelloLog = require('./HelloLog');

HelloLog("foobar")

使用 ECMAScript MDN Docs Nodejs Docs

HelloLog.js:

// Default exports choose any
export default expression;
export default function (…) { … } // also class, function*
export default function name1(…) { … } // also class, function*
export { name1 as default, … };

Client.js:

import HelloLog from './HelloLog';

HelloLog("foobar")

  • CommonJS和ECMAScript不能混用。

答案 1 :(得分:1)

或者这个。

module.exports = (str) => {
  console.log(`Hello, logging ${str}!`);
}
const HelloLog = require('./HelloLog');

HelloLog("foobar");

答案 2 :(得分:0)

这应该有效

HelloLog.js:

exports.HelloLog = (str) => {
    console.log(`Hello, logging ${str}!`);
}

Client.js:

const { HelloLog } = require('./HelloLog');

答案 3 :(得分:0)

您正在命名导出default。 试试这个:

export default (str) => {...}