2012-06-10 82 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