繁体   English   中英

如何使用嵌入式Javascript(EJS)获取“获取/发布URL”参数?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM