NodeJS,express:将数据从一个页面发布到另一个页面

Posted

技术标签:

【中文标题】NodeJS,express:将数据从一个页面发布到另一个页面【英文标题】:NodeJS, express: post data from one page to another 【发布时间】:2016-04-05 07:48:51 【问题描述】:

我必须将一些数据从一页发布到另一页。我在 NodeJS 中使用 express。

我写了下面的代码:

var express = require('express');  
var app = express();

app.get('/', function (req, res) 
   res.sendFile( __dirname + "/index.html" );
);

app.get('/RegistrationPage', function (req, res) 
   res.sendFile( __dirname + "/RegistrationPage.html" );
);

app.post('/RegistrationSuccessPage', function (req, res) 
   var uname = req.body.username
   var pwd = req.body.pwd
   var emailAddress = req.body.email
   postData = uname+","+pwd+","+emailAddress
   console.log(postData);
   res.sendFile( __dirname + "/RegistrationSuccessPage.html",uname);
);

在导航到“RegistrationSuccessPage”时,uname、pwd、emailAddress 的值被打印为未定义。

我也使用过以下代码,但没有帮助:

app.post('/RegistrationSuccessPage', function (req, res) 
   var uname = req.query.username
   var pwd = req.query.pwd
   var emailAddress = req.query.email
   postData = uname+","+pwd+","+emailAddress
   console.log(postData);
   res.sendFile( __dirname + "/RegistrationSuccessPage.html",uname);
);

有人可以帮助我如何从文本框中获取值并将它们发布到其他页面上。

HTML代码如下:

<body>
        <div>   
            <div align="center">
                <label>Please enter below details</label><br><br>
                <label>Username *: </label><input type="username" name="username"/><br><br>
                <label>Password *: </label><input type="password" name="pwd" /><br><br>         
                <label>Email Address *: </label><input type="email" name="email"><br><br>
                <br><br>
                <form action="/RegistrationSuccessPage" method="post"><input type="submit" value="Submit" /></form>
            </div>
        </div>
    </body> 

【问题讨论】:

您的表单必须包含所有&lt;input&gt;s。 &lt;form&gt;&lt;div&gt;&lt;label&gt;&lt;input /&gt;&lt;/label&gt; ...&lt;/div&gt;&lt;/form&gt; 我这样做了,但它没有重定向到其他页面。虽然我可以在 URL 中看到值。 你还需要body-parser 这有帮助。你能帮我再问一个问题,我怎样才能在下一页显示这个帖子数据? 使用res.render 和template engine。 【参考方案1】:

您将输入字段放置在表单标签内。使用下面的代码

  <body>
    <div>   
        <div align="center">
          <form action="/RegistrationSuccessPage" method="post">
            <label>Please enter below details</label><br><br>
            <label>Username *: </label><input type="username" name="username"/><br><br>
            <label>Password *: </label><input type="password" name="pwd" /><br><br>         
            <label>Email Address *: </label><input type="email" name="email"><br><br>
            <br><br>
            <input type="submit" value="Submit" /></form>
        </div>
    </div>
</body>

现在试试我可能会工作

【讨论】:

我使用了 body-parser 和你建议的代码,它有帮助。你能告诉我如何在下一页显示这个发布的数据吗?

以上是关于NodeJS,express:将数据从一个页面发布到另一个页面的主要内容,如果未能解决你的问题,请参考以下文章

使用 Jade、NodeJS、Express 的动态 html 页面

Express 和 Nodejs:调用外部 API 的最佳方式

如何使用 nodejs / express 将数据存储在 mongodb 中?

如何从不同的上传点在同一页面上上传多个文件。使用 nodejs express-fileupload

nodejs中使用express和passport和mongodb的简单登录页面

如何在不刷新html页面的情况下在表格上显示数据(使用nodejs和mysql ajax)