从Node.js中的模块导出函数的语法是什么?

Ben*_*Ben 4 javascript node.js

从Node.js中的模块导出函数的语法是什么?

function foo() {}
function bar() {}

export foo; // I don't think this is valid?
export default bar;
Run Code Online (Sandbox Code Playgroud)

rsp*_*rsp 9

在Node中,您可以使用module.exports特殊对象导出内容.例如:

这导出了两个函数:

module.exports = { foo, bar };
Run Code Online (Sandbox Code Playgroud)

它们可以用作:

const { foo, bar } = require('./module/path');
Run Code Online (Sandbox Code Playgroud)

要将其中一个函数导出为顶级对象,您可以使用:

module.exports = foo;
module.exports.bar = bar;
Run Code Online (Sandbox Code Playgroud)

可以用作:

const foo = require('./module/path');
Run Code Online (Sandbox Code Playgroud)

和:

const { bar } = require('./module/path');
Run Code Online (Sandbox Code Playgroud)

要么:

const foo = require('./module/path');
const { bar } = foo;
Run Code Online (Sandbox Code Playgroud)

要么:

const foo = require('./module/path');
const bar = foo.bar;
Run Code Online (Sandbox Code Playgroud)

等等

这是"从Node.js中的模块导出函数的语法",如问题中所要求的 - 即Node本身支持的语法.Node不支持import/ exportsyntax(请参阅此内容以了解原因).正如slezica在下面的评论中指出的那样,您可以使用像Babel这样的转换器将import/ exportkeywords 转换为Node理解的语法.

有关详细信息,请参阅这些答案