目前在做一个用户登录验证的案例
参考了nodejs的权威指南还有 下载了一些其他案例,都是引用很多模板。对模板完全不熟悉的人表示压力巨大啊
也尝试着自己去写,带有java的惯性思维,我思考这个是不是也有一个类似ajax机制的一个东西,去百度,竟然也找到了。
真是弯路 弯路 再弯路啊
不多说上代码
用到的模板 express 数据库mysql
app.js
//用户校验
socket.on('JudgeUser', function(nickName) {
console.log("校验"+nickName);
var insertSQL = "select * from yr_chart where ?"
conn.query(insertSQL,{user_name:nickName},function (err1, rows) {
if(err1){
console.log("查询失败");
}
if(rows.length>0){
socket.emit('userExisted');
}else{
socket.emit('userNotExisted');
}
})
});
//用户注册
socket.on('userRegist', function(nickName,password) {
//防止sql注入
conn.escape(nickName);
conn.escape(password);
//判断用户表中有没有该用户
var insertSQL = "select * from yr_chart where ?"
conn.query(insertSQL,{user_name:nickName},function (err1, rows) {
if(err1){
console.log("查询失败");
}
if(rows.length>0){
socket.emit('userExisted');
}else{
//插入
var insertSQL = "insert into yr_chart SET ?"
conn.query(insertSQL,{user_name:nickName,user_password:password},function (err1, res1) {
if(err1){
console.log("插入失败");
//提示该用户存在
socket.emit('registFail');
}else{
socket.emit('loginSuccess');
//注册成功直接登录
io.sockets.emit('system', nickName, users.length, 'login');
}
});
}
})
});
//用户登录
socket.on('login', function(nickname,password) {
if (users.indexOf(nickname) > -1) {
socket.emit('nickExisted');
} else {
var insertSQL = "select * from yr_chart where user_name = ? and user_password =?"
console.log(nickname);
console.log(password);
conn.query(insertSQL,[nickname,password],function (err1, rows) {
if(err1){
console.log("登录查询失败");
}else{
if(rows.length>0){
socket.userIndex = users.length;
socket.nickname = nickname;
users.push(nickname);
socket.emit('loginSuccess');
io.sockets.emit('system', nickname, users.length, 'login');
console.log("登录查询成功");
}else{
socket.emit('userNotExisted');
console.log("找不到该用户");
}
}
})
};
});
做用户姓名验证直接发送姓名过去数据库查询就可以了 用不着ajax的
上边的代码不能直接用 你得建立数据库连接才行