Node.js 节点JS EJB获取URL参数

Node.js 节点JS EJB获取URL参数,node.js,ejs,Node.js,Ejs,我试图在EJS模板中读取URL参数,但是我尝试或从google读取的所有内容都不起作用。以下是我的app.js文件的相关部分: app.post('/account/logintoaccount', function(req, res) { var email = req.body.email; if(email === '') { res.redirect('https://myurl.com/account/login?e=bademail');

我试图在EJS模板中读取URL参数,但是我尝试或从google读取的所有内容都不起作用。以下是我的app.js文件的相关部分:

app.post('/account/logintoaccount', function(req, res) {
    var email = req.body.email;
    if(email === '') {
        res.redirect('https://myurl.com/account/login?e=bademail');
        return;
    }
    var password = req.body.password;
    if(password === '') {
        res.redirect('https://myurl.com/account/login?e=badpassword');
        return;
    }
    res.redirect('https://myurl.com/?email=' + email + '&pw=' + password);
});
下面是我试图在EJS文件中显示变量的地方:

<div id="title-text">
    <% if(!req.query.e) { %>
        <p>Log into your account:</p>
    <% } else if(req.query.e === "badpass") { %>
        <div class="alert alert-danger"><strong>Error</strong> incorrect password</div>
    <% } else if(req.query.e === "bademail") { %>
        <div class="alert alert-danger"><strong>Error</strong> unknown email address</div>
    <% } %>
</div>

登录您的帐户:

错误密码不正确 错误未知电子邮件地址
如果我删除EJS文件的这一部分,重定向就可以正常工作。URL中有参数,一切都很好。然而,每当我尝试在EJS文件中以任何形式使用URL参数时,它就会中断并给我一个“X是未定义的错误”。我试过使用“e”、“req.query.e”、“this.e”、“this.req.query.e”和谷歌搜索结果建议我做的任何其他东西

我的最终目标是能够在中读取URL参数


然后检查“e”代表什么。我花了30多分钟阅读谷歌的搜索结果,但我认为这些结果要么已经过时,要么就是我做错了。有人能帮忙吗?感谢您抽出时间

请将请求传递到您的视图中

app.get('/account/:action', function(req, res) { 
   res.render('account/' + req.params.action, { 
      session: req.session,
      req: req
   });
});

您需要显示GET
/login
处理程序。您可能没有将请求对象传递给视图。@Mikey
app.get('/account/:action',function(req,res){res.render('account/'+req.params.action,{session:req.session});})这个?如果是这样,我会添加什么来解决这个问题?感谢您的建议,最好将错误存储在会话中。另外,在URL中输入密码从来都不是一个好主意。@Alexanderflores:你重定向或渲染了吗。在使用重定向时,我们如何在ejs模板中提取查询值