2013-06-24 23 views
1

我有一個基於快遞的應用程序,服務器端從句柄模板呈現HTML和一束骨幹資源。理論上,客戶端,應用程序類似於服務器端發生的事情。設置一個手柄條幫助器,以快速返回每個請求的特定值

這在開發中很好,但是當節點服務器同時處理很多請求時,我們使用的幫助程序的機制就是定義/重新定義休息 - 我們設置幫助程序(在這種情況下登錄/未登錄,但可能是任何事情),然後服務其餘的請求異步發生 - 我們不知道,也不能控制這將需要多長時間。

我已經想通了,這是因爲在服務器上的把手是有效的一個全球性的 - 所以每一個請求到來時,正被稱爲助手是從那裏,請求之間的共享對象。

問題是,如何能夠爲每個異步請求設置一個幫助程序,以返回該特定值,並且不會受到併發請求的污染...?

這裏是一個測試案例的要點 - 希望說明問題了:

https://gist.github.com/dazld/023df6e1da7a92387720

(如果不是從什麼明顯我打算在評論剛剛平了,我會寫起來更清楚一些)。

謝謝!

回答

1

這是因爲您使用Handlebars的單個實例,並且有很多請求會與另一個請求污染。

我使用hbshttps://github.com/donpark/hbs),因爲它爲您的每個請求/渲染創建了一個新的handlebars實例。

+0

是的,已經解決了這個問題 - 我想我一直在尋找處理這類問題而不擴展express的技巧,並讓現有的骨幹視圖儘可能地繼續使用「正常」的句柄。對於簡單的東西,這個擴展看起來很好,但對我們來說,我不認爲它是一個很好的解決方案。 – dmp