Node.js中是否有定义“标准库”的方法,它在每个Node.js应用程序的开头自动执行?
例如:
//stdlibrary.js
function sayHello(){
console.log("Hello World!");
}
//app.js
sayHello(); //without including the stdlibrary.js!
希望我的问题很明确。
感谢您的帮助!
更新
我正在寻找像PHP中的auto_prepend_file
这样的东西。希望有类似的东西。
答案 0 :(得分:3)
在node.js中没有这样的东西,这种魔法并不透明,因为大多数软件产品都很乐意避免这种情况。
答案 1 :(得分:3)
是的,这很简单。只需编辑src / node.cc文件以包含autorequire文件的选项,然后修改node :: Load代码以处理该选项。您可能还需要更改src / node.js中的javascript。
重建,测试,你就完成了。
或者你可能只是通过eval一个需要你的库的字符串然后篡改命令行中提到的实际脚本文件来将其破解成src / node.js。
答案 2 :(得分:2)
我建议创建一个包含在其他文件中的文件common.js:
var common = require("./common")
然后,您可以访问common.js中导出的常量和函数,如下所示:
common.MY_CONST
common.my_fun()
common.js将实现如下:
exports.MY_CONST = 123
exports.my_fun = function() {
...
}
答案 3 :(得分:0)
另一种选择是“污染”全局命名空间(但根本不推荐)。您可以在文件中定义包含函数的对象(我们称之为global.js):
global.js:
global.customNs = {};
global.customNs.helloparam = function(param) {
console.log('Hello ' + param);
};
在您的主文件(您的服务器或您正在开发的任何类型的应用程序)中,您需要该文件一次:
server.js
require('./global');
在需要它之后,您可以在以下所有要求中访问您的global.customNs.helloparam函数(基本上无处不在)。
另一种选择是使用CommonJS模块表示法定义全局对象:
global.js
exports.customNs = {
global.customNs.helloparam = function(param) {
console.log('Hello ' + param);
};
}
server.js
globalObject = require('./global').customNs;
然后使用globalObject.helloparam('test')在require'd代码中的任何位置访问它。
注意:我不使用生产代码中的任何一个,只是使用一些测试代码将这些示例放在一起。不能保证他们在任何情况下都能工作