为NodeJS的每次执行添加全局函数

时间:2013-11-08 11:47:44

标签: node.js

在我的项目文件夹project中,我有一个像这样的文件utils.js

global.root_path = process.cwd();
global.custom_require = function() {
    console.log('custom require called');
}

我想在每个节点执行中包含此文件,以便在project中的每个js文件中,我可以调用custom_require,或者访问global.root_path,因为我已经在内置函数require

您知道是否有解决方案(命令行选项,环境变量或其他)来实现这一目标吗?

更新 我不想在每个文件中包含utils.js,在这种情况下,我不需要修改global对象。

谢谢!

1 个答案:

答案 0 :(得分:1)

只需require它。示例app.js

require('./utils.js');

var express = custom_require('express');
var app = express();
var port = process.env.PORT || 3000;

app.listen(port);

然后,你可以做(​​在终端)

node app

只要您require包含全局声明的代码,就可以在事后使用require d之内的任何文件中的那些全局变量。

您很可能不希望自定义“插件”在本地运行时更改所有应用程序的行为,因此最好远离这种模式。相反,您可能想要创建一个模块,在其上使用npm link,然后在项目的目录中使用npm link something,其中something是模块名称。

然后每个项目可以在一开始就添加一行,如require('something');。由于something中的行为,更改npm link会立即影响包含它的所有项目。