节点js中的全局变量和函数

des*_*lee 0 javascript node.js express

假设我有如下的 javascript 文件,其中包括全局变量和全局函数。这如何最好地包含在带有 express 的节点 js 中?

var language = {
    'English': 'English'
}

var a = 'string';

function start() {
    return 'start';
}

var b = function() {
    return 'start';
}
Run Code Online (Sandbox Code Playgroud)

jfr*_*d00 5

node.js 使用模块系统来包含文件。虽然您实际上可以有意识地在 node.js 中分配全局变量,但不建议这样做。相反,您可以将您的函数包装在一个模块中并导出您打算公开的函数。其他希望使用这些函数的 JS 文件然后将require()在您的模块中并从返回的模块句柄中引用这些函数。这是在 node.js 中的文件之间共享代码的推荐方式。

目前还不清楚你的模块应该做什么,但你可以像这样导出两个函数:

// module shared.js
function start() {
    return 'start';
}

var b = function() {
    return 'start';
}

module.exports = {
    start: start,
    b: b
};
Run Code Online (Sandbox Code Playgroud)

然后,另一个模块可以像这样使用它:

// module main.js
var shared = require('./shared.js');

console.log(shared.b());
console.log(shared.start());
Run Code Online (Sandbox Code Playgroud)