【问题标题】:Node.js Express: passing parameters between client pagesNode.js Express:在客户端页面之间传递参数
【发布时间】:2014-02-19 03:37:12
【问题描述】:

我有一个 Node.js 服务器。假设每个客户都将他的名字保存在一个变量中。他们切换页面,我希望每个客户都将他们的名字保存在一个变量中。

使用 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,我想这是一个概念错误。有没有简单的方法将变量从客户端的一个页面传递到另一个页面? 谢谢。

【问题讨论】:

  • 为什么最后重定向?和相同的网址?您应该简单地渲染一个模板并将user 变量传递给它。
  • 网站由静态文件组成。我在一个页面中有一个变量,我只需要将它传递给下一个,例如使用 POST。用php,asp,jps很容易......我想知道如何用Node.js来做
  • 你不懂这个概念。如果 PHP、ASP 或其他任何方式将变量传递给文件,那么这个文件就不再是静态的了,是吗?或者您可能正在谈论 cookie/会话(是吗?),但这会更复杂(并且需要 JavaScript 才能在静态文件中使用它)。所以这就是你必须做的:用一个额外的变量渲染模板(而不是重定向)。
  • 谢谢。根据您的建议,我进一步调查并意识到我需要使用模板。我试图将我的 .php 文件转换为 .html 文件,我认为 Node 只会实时提供我的动态内容。但我仍然需要动态页面。我会用EJS,对于初学者来说看起来比jade更好。

标签: node.js express


【解决方案1】:

您必须渲染模板(使用 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 模板中可用。

【讨论】:

    【解决方案2】:

    您可以使用 res.render 并传递许多变量,例如:

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

    【讨论】:

    • 是的,但这不能由路由处理程序处理,它只是呈现页面。
    猜你喜欢
    • 2016-06-17
    • 1970-01-01
    • 2012-08-01
    • 2020-07-10
    • 1970-01-01
    • 2012-06-10
    • 1970-01-01
    • 1970-01-01
    • 2022-11-18
    相关资源
    最近更新 更多