Node.js – 标准库
有没有在Node.js中定义一个“标准库”的方法,它是在每个Node.js应用程序的开始时自动执行的?
例如:
//stdlibrary.js function sayHello(){ console.log("Hello World!"); } //app.js sayHello(); //without including the stdlibrary.js!
希望我的问题很清楚。
谢谢你的帮助!
更新
我正在寻找像在PHP中的auto_prepend_file
。 希望有类似的东西。
是的,这很简单。 只需编辑src / node.cc文件以包含autorequire文件的选项,然后修改node :: Load代码来处理该选项。 您可能还需要更改src / node.js中的JavaScript。
重build,testing,你完成了。
或者你也许可以通过让它评估一个需要你的库的string,然后在命令行上提到实际的脚本文件来将其转换为src / node.js。
node.js中没有这样的事情,这种魔法是不透明的,因为这个原因,大多数软件产品都乐于避免。
我build议创build一个文件common.js,你包含在其他文件中:
var common = require("./common")
然后,您可以按如下方式访问在common.js中导出的常量和函数:
common.MY_CONST common.my_fun()
common.js将实现如下:
exports.MY_CONST = 123 exports.my_fun = function() { ... }
另一个select是“污染”全局命名空间(但是根本不推荐)。 你可以在一个文件中定义一个包含你的函数的对象(我们称之为global.js):
global.js:
global.customNs = {}; global.customNs.helloparam = function(param) { console.log('Hello ' + param); };
在您的主文件(您的服务器或任何types的应用程序正在开发),您需要该文件一次:
server.js
require('./global');
在需要之后,您可以在以下所有需求(基本上无处不在)中访问您的global.customNs.helloparam函数。
另一种select是使用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代码中的任何位置访问它。
注意:我不使用生产代码中的任何一个,只是将这些示例一起使用一些testing代码。 不能保证他们在任何情况下工作