2012-01-09 79 views
1

如何实现一个模块'test',它暴露了两个函数getter和setter来获取和设置其在nodejs中的成员数据?Nodejs Modules Implementation

诀窍是通过制定者从模块中设置的数据说“一”在“测试”应该可以访问通过“测试”

的情况是,一旦我们注册请求和资源对象的吸气剂模块“B”的http请求从索引'测试',应该可以通过声明require('test')来访问应用中的所有其他模块

这是可能的nodejs?

+0

如果我没有错,找到实现它的另一种方式;声明module.exports = new test()并将'test'模块实现为一个javascript类。这是有效的,因为在第一次需求之后,节点总是返回缓存对象('test')。所以我们可以使用缓存对象的getter和setter – Tamil 2012-01-09 17:26:41

回答

2

即使设置了全局变量,也无法实现该目标,因为reqres可在每个页面请求中访问(因此将它们设置为全局变量会使竞争条件发生)。

实现此目的的唯一方法是将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 
} 
+0

谢谢..只是发现东西工作:) – Tamil 2012-01-09 09:12:48