Nodejs模块的实现
如何实现一个模块说'testing'哪个暴露两个函数getter和setter来获取和设置其成员数据在nodejs?
诀窍是通过setter从一个模块中设置的数据,通过'testing'的getter可以通过模块'b'访问模块'b'
情景是,一旦我们注册请求的req和res对象从索引'testing',它应该可以通过应用程序的所有其他模块访问,只需通过声明require('test')
这是可能的nodejs?
即使你设置了一个全局variables,你也无法做到这一点,因为每个页面请求都可以访问req
和res
(所以把它们设置为全局variables会使竞态条件发生)。
实现这一点的唯一方法是将req和res作为parameter passing给该模块。
例:
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 }