如何实现一个模块'test',它暴露了两个函数getter和setter来获取和设置其在nodejs中的成员数据?Nodejs Modules Implementation
诀窍是通过制定者从模块中设置的数据说“一”在“测试”应该可以访问通过“测试”
的情况是,一旦我们注册请求和资源对象的吸气剂模块“B”的http请求从索引'测试',应该可以通过声明require('test')来访问应用中的所有其他模块
这是可能的nodejs?
如何实现一个模块'test',它暴露了两个函数getter和setter来获取和设置其在nodejs中的成员数据?Nodejs Modules Implementation
诀窍是通过制定者从模块中设置的数据说“一”在“测试”应该可以访问通过“测试”
的情况是,一旦我们注册请求和资源对象的吸气剂模块“B”的http请求从索引'测试',应该可以通过声明require('test')来访问应用中的所有其他模块
这是可能的nodejs?
即使设置了全局变量,也无法实现该目标,因为req
和res
可在每个页面请求中访问(因此将它们设置为全局变量会使竞争条件发生)。
实现此目的的唯一方法是将req和res作为参数传递给该模块。
例子:
app.js
var http = require('http');
http.createServer(function (req, res) {
require('./sample')(req, res);
}).listen(1337, "127.0.0.1");
sample.js
module.exports = function (req, res) {
// do stuff with req and res here
}
谢谢..只是发现东西工作:) – Tamil 2012-01-09 09:12:48
如果我没有错,找到实现它的另一种方式;声明module.exports = new test()并将'test'模块实现为一个javascript类。这是有效的,因为在第一次需求之后,节点总是返回缓存对象('test')。所以我们可以使用缓存对象的getter和setter – Tamil 2012-01-09 17:26:41