2012-08-16 56 views
0

我正在寫一個簡單的應用程序。我寫的登錄/密碼的屏幕,它只是設置會話變量:節點(服務器)和Dojo(客戶端):在哪裏存儲用戶名的客戶端?

if(docs.password == req.body.password) { 
    errors.push({ field:'password', message: 'Password Match!', mustChange: false }); 
    res.json({ response: 'OK' } , 200); 
    req.session.loggedIn = true; 
    req.session.login = req.body.login; 

一旦登錄獲得通過,客戶端被重定向到實際的應用程序(按正常)。但是,在這一點上,客戶端不再知道他們用來登錄的登錄名! (我正在討論在瀏覽器中運行的Javascript)

正如你所看到的,我在會話中保存了用戶名。但是,當客戶端加載「應用程序」HTML頁面時,它們沒有自己的登錄名,因爲它是全新的Javascript頁面(它不知道他們以前用什麼用戶名登錄)的全新頁面。

可以在頁面的HTML中嵌入它的地方(地方,比如在網頁的身體全球JS變量?),因爲它是在會話,但...

這是怎麼「正常」呢?這是什麼模式?

Merc。

回答

0

在快遞3中,這是如何正確地做到這一點。
https://github.com/dotcloud/express-on-dotcloud/blob/master/app/app.js#L65

您設置了一個將會話發送到所有路由模板的中間。

+0

我澄清了我的問題 - 抱歉。關鍵是要讓Javascript知道用戶名 – Merc 2012-08-16 09:35:03

+0

啊,我只是「得到」了你的問題:你將會話放在響應對象中,以便模板引擎擁有它!好的,但我仍然需要以某種方式在頁面上打印...對嗎? – Merc 2012-08-16 09:36:56

+0

這是因爲我沒有得到你的問題。你需要一個模板引擎。如果你想要真正接近html的東西,請使用ejs(https://github.com/visionmedia/express/blob/master/examples/ejs/index.js) – 3on 2012-08-16 16:14:24