以用户登录为例,直接上代码。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//js操作 Ajax请求代码
$("#login-submit").click(function(){
//do something
var loginData={};
loginData.userName=$("#userName").val();
loginData.userPassword=$("#userPassword").val();
console.log(loginData);
$.ajax({
data: loginData,
url: '/login',
type:"post",
dataType: 'JSON',
success: function(data){
console.log(data);
location.reload()
},
error: function(textStatus){
console.log('error ' + textStatus );
}
});
})

node路由代码,如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
app.post('/login', function (req, res) {
//生成密码的 md5 值
var md5 = crypto.createHash('md5'),
password = md5.update(req.body.userPassword).digest('hex');
//检查用户是否存在
User.get(req.body.userName, function (err, user) {
if (!user) {
console.log('error', '用户不存在!');
req.flash('error', '用户不存在!');
return res.redirect('/login');//用户不存在则跳转到登录页
}
//检查密码是否一致
if (user.password != password) {
console.log('error', '密码错误!');
req.flash('error', '密码错误!');
return res.redirect('/login');//密码错误则跳转到登录页
}
//用户名密码都匹配后,将用户信息存入 session
req.session.user = user;
console.log(user);
req.flash('success', '登陆成功!');
res.json({"result":{message:"success"}});
});
});