我有一个快速服务器和一个用HTML开发的登录页面(带有jquery)。点击登录按钮后,jQuery会激活一个HTTP get请求来表达服务器,在用户获得验证后,应该将用户重定向到登陆页面,其中包含一些数据,如名称,性别,年龄等(从服务器本身的mongoDB获取)。当我执行res.sendFile
或res.redirect
时,无法在视图中发送参数(名称,年龄,性别)。
Jquery的:
$("#submit").click(function() {
user = $("#email").val();
pass = $("#password").val();
$.post("https://localhost:443/login", {
user: user,
password: pass
}, function(response) {
if (response) {
alert("login success" + response.userName);
}
});
});
HTML:
<form id="grad">
<h1 style="margin-top: -10px; text-shadow: 1px 1px whitesmoke;">Login</h1>
<h3 style="padding-bottom: 30px;font-size: 22px ">Please enter email ID and password.</h3>
<div class="group">
<input type="email" id="email" name="email"><span class="highlight"></span><span class="bar"></span>
<label>Email ID</label>
</div>
<div class="group">
<input type="password" id="password" name="password"><span class="highlight"></span><span class="bar"></span>
<label>Password</label>
</div>
<div class="group">
<input type="submit" id="submit" class="button buttonRed" value="Login" onclick="validateUser()" />
<input type="reset" class="button buttonRed" value="Reset" />
</div>
</form>
快递:
app.post('/login', function (req, res) {
// some logic to validate user and fetch details, which will be used on view.
res.sendFile('landing**strong text**page.html', { root: "public" } );
})
答案 0 :(得分:0)
在将响应返回给jQuery代码之前,post route应该将用户保存在会话中。基本上,后期路线的响应应该只是成功或响应。
还应该有一个get路由将用户重定向到主页(或者登录后你想要用户的页面)。 此获取路由将首先检查会话中是否有用户,然后相应地重定向。
使用express-session在app中保存会话。
答案 1 :(得分:0)
<强> Jquery的强>
$("#submit").click(function() {
user = $("#email").val();
pass = $("#password").val();
$.post("https://localhost:443/login", {
user: user,
password: pass
}, function(response) {
$('body').append(response); //append html to body returned from /login
});
});
Express Server:
app.post('/login', function (req, res) {
// some logic to validate user and fetch details, which will be used on view.
var userInfo = validateAndFetchDetailFunc();
res.send('Username: ' + userInfo.name + '<br>Gender: ' + userInfo.gender);
})
真正的解决方案应该是使用session来管理用户的登录会话。
对于快速服务器,您可以开始使用express-session学习会话。