2013-02-12 64 views
3

我有一個Node.js服務器。可以說,每個客戶都有他的名字保存在一個變量上。他們切換頁面,我希望每個客戶端都可以在變量上保留他們的名字。Node.js Express:在客戶端頁面之間傳遞參數

這將是一個非常容易的PHP形式,但我不明白如何做到這一點與Node.js 如果我做一個表格就像我會在PHP中做的,我設法發送名稱到服務器:

app.post('/game.html', function(req, res){ 
    var user = req.param('name'); 
    console.log(user); 
    res.redirect('/game.html'); 
    }); 

但它似乎太複雜,然後重新發送到它自己的每個客戶端。 我剛開始使用Node.js,我想這是一個概念錯誤。有沒有簡單的方法將變量從客戶端的一個頁面傳遞到另一個頁面? 謝謝。

+1

爲什麼你重定向在結束了嗎?和相同的網址?您應該簡單地渲染一個模板並將'user'變量傳遞給它。 – freakish 2013-02-12 11:07:28

+1

該網站由靜態文件組成。我在頁面中獲得了一個變量,我只需要將它傳遞給下一個,例如使用POST。用php,asp,jps很容易...我想知道如何用Node.js做到這一點 – Kal 2013-02-12 11:20:21

+1

你不理解這個概念。如果PHP,ASP或其他將一個變量傳遞給一個文件,那麼這個文件就不再是靜態的了,現在呢?或者可能您正在討論cookies /會話(是嗎?),但這會更復雜(並且需要JavaScript才能在靜態文件中使用它)。因此,您需要做的是:使用其他變量呈現模板(而不是重定向)。 – freakish 2013-02-12 11:24:05

回答

7

不是重定向到一個靜態文件的,你要呈現模板(使用ExpressJS支持任何引擎):

app.post('/game.html', function(req, res){ 
    var user = req.param('name'); 
    console.log(user); 
    res.render('game.html', { user:user }); 
}); 

(注意.render需要在app設置一些產生額外的設置)

現在user變量可用於game.html模板。

+1

謝謝,像一個魅力工作。就像我說的那樣,我使用了EJS。 – Kal 2013-02-12 14:19:49

0

您可以使用res.render並傳遞許多變數,像:

res.render('yourPage', {username:username, age:age, phone:phone}); 
+1

是的,但這不能由路由處理程序處理,它只是呈現該頁面。 – 2014-11-17 04:37:22

相關問題