2013-02-12 62 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

相关问题