2012-06-10 55 views
4

您可以致电var app = module.exports = express.createServer();创建新的对象HTTPServer。我想从此appHTTPServer)对象访问当前req对象。有没有办法做到这一点?如何从express对象中获取请求对象?

+0

[是,存在](http://expressjs.com/guide.html#passing-route+control)的'req'是在路由回调内范围。你打算怎么做? –

+0

@MattBall那么我已经绑定了一个对象到请求对象的会话对象(当前用户的ID),我想在我的应用程序的websockets部分访问它,我所有的似乎都是'app'对象。因此,我想从这个HTTPServer对象访问请求对象。 – user730569

+0

@MattBall对,但因为我需要在我的应用程序的websockets部分,我没有调用任何路线。 (我为所有路径启动socket.io websockets服务器) – user730569

回答

6

req对象仅在底层HTTPServer实际获取请求时创建,并且只有在处理请求后才会创建。因此,在回调的背景下讨论它并没有意义。

在回调,你可以简单地从别的地方会话对象和使用,在您的WebSockets代码复制复制相应的数据。但是,在完成处理请求之后,您无法依靠请求对象或甚至会话对象。

显示一个小代码示例会很有帮助;这听起来像你有一个“XY问题”(你想完成一个目标X,并且你已经决定技术Y是正确的方式来做到这一点,而事实上技术Z可能会更好地工作)。

+0

Upvoted for“XY problem”anagoly。我不知道它:) – scaryguy