[英]How can you obtain Get / Post URL parameters using Embedded Javascript (EJS)?
我正在EJS寻找同等物,下面是php代码:
<?php echo $_GET['name']; ?>
和
<?php echo $_POST['name']; ?>
我正在使用Node.js,Express和嵌入式Javascript(EJS)。
您需要在Express中使用主体解析器中间件。 如果使用express-generator,将自动生成包含body-parser的代码。
例
var bodyParser = require('body-parser');
和
app.use(bodyParser.json()); app.use(bodyParser.urlencoded({Extended:false}));
在您的“ app.js”文件中准备好上述内容后,您需要为routes文件夹指定路由处理。
您必须确保本地服务器上的路由“ register”和“ registeration_complete”可用。 为此,请确保在“ app.js”中具有以下几行来进行设置:
var register = require('./ routes / register');
var registeration_complete = require('./ routes / registeration_complete');
app.use('/ register',注册);
app.use('/ registeration_complete',registeration_complete);
考虑在视图中有一个名为“ register.ejs”的表单。 “ register.ejs”具有名称为“ tb_email”的输入文本框。 示例如下所示:
<!DOCTYPE html>
<html>
<head>
<title>Contact</title>
<link rel='stylesheet' href='/stylesheets/style.css' />
</head>
<body>
<h1>Contact</h1>
<p>Welcome, enter your email address.</p>
<form method="post" action="registeration_complete">
<p><input type="text" size="12" name="tb_email"/>
<p><input type="submit" value="Register"/>
</form>
</body>
</html>
注意:在上面的输入标签中,您应该具有“名称”。 具有“ id”将不会显示已发布的数据。
表单的操作设置为“ registeration_complete”,因此您现在需要在路由文件夹中名为“ registeration_complete.js”的文件中定义路由处理。
“ registeration_complete.js”的内容应如下所示:
var express = require('express');
var router = express.Router();
/* GET home page. */
router.post('/', function(req, res, next) {
var tb_email=req.body.tb_email;
res.send('Your email address is: '+ tb_email );
});
module.exports = router;
如果现在访问应用程序的“注册” URL并输入电子邮件地址,则应该使用“ registeration_complete.js”文件中的上述“ res.send”方法向您显示输入的电子邮件地址。
现在您确定路由中可以使用发布值,请在““ registeration_complete.js”文件中使用“ res.render”,而不是为测试目的而设置的上述“ res.send”。您要使用EJS在视图中访问的render函数中的变量。
现在,“ registeration_complete.js”文件应如下所示:
var express = require('express');
var router = express.Router();
/* GET home page. */
router.post('/', function(req, res, next) {
var tb_email=req.body.tb_email;
//res.send('Your email address is: '+ tb_email );
res.render('registeration_complete', {email:tb_email});
});
module.exports = router;
现在,您必须提供“ registeration_complete”视图,因此“ views”文件夹中的“ registeration_complete.ejs”文件应如下所示。
<html>
<head>
<title>Registeration complete</title>
<link rel='stylesheet' href='/stylesheets/style.css' />
</head>
<body>
<h1>Thank you for registering.</h1>
<p>Your email address is: <%= email %></p>
</body>
</html>
就是这样。 您可以访问本地服务器的“ / register” URL,并且应该看到一个输入表单,要求您发送电子邮件。 提交表单后,“ registeration_complete.js”文件将处理请求并呈现“ registeration_complete.ejs”文件,该文件将使用EJS输出输入的电子邮件地址。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.