如何实现一个模块说'test'暴露两个函数getter和setter来获取和设置nodejs中的成员数据?
诀窍是来自模块的setter的数据设置说'a'超过'test'应该可以通过'test'的getter访问模块'b'
场景是,一旦我们从索引注册req和res http请求的对象'test',应该可以通过声明require('test')
来访问应用程序中的所有其他模块这在nodejs中是否可行?
答案 0 :(得分:2)
即使您设置了一个全局变量,也无法实现这一点,因为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
}