我非常喜欢nodeJS,我有以下文件router.js
:
exports.redirectlogin = function ( req, res, next ) {
// some logic
res.redirect( '/login ', {redirecturl: req.originalUrl} );
};
我将req.originalUrl
作为查询字符串传递。现在我想在login.ejs
文件中访问它。我尝试了以下方法,但没有一个工作:
<div class="col-xs-6 log-in margin-20">Log In</div>
<form class="margin-20" method="POST" action="/login">
// some code
<input name="redirecturl1" type="hidden" value="<%= redirecturl %>" />
<input name="redirecturt2" type="hidden" value=<%= redirecturl %> />
<input name="redirecturl3" type="hidden" value=<% redirecturl %> />
// some code
</form>
</div>
但是我收到一个错误,因为在所有这些情况下都没有定义redirecturl
。在ejs文件中获取它的正确方法是什么?
答案 0 :(得分:2)
您正在使用res.redirect,这会将用户发送到新的网址,而不会进行任何模板构建。在这种情况下,您需要在/login
路由中添加代码,以从redirecturl
对象中提取req
,然后将其推送到/login
内的模板中res.render
致电。例如在app.get('login'...);
app.get('/login', function(req, res, next) {
const redirectUrl = req.params.redirecturl;
return res.render('pages/login', {redirecturl: redirectUrl });
});