注册登录功能,可以通过NodeJs+MySQL实现
导读:这篇文章给大家分享的是“注册登录功能,可以通过NodeJs+MySQL实现”,文中的讲解内容简单清晰,对大家认识和了解都有一定的帮助,对此感兴趣的朋友,接下来就跟随小编一起了解一下“注册登录功能,可以通过NodeJs+MySQL实现”吧。...
这篇文章给大家分享的是“注册登录功能,可以通过NodeJs+MySQL实现”,文中的讲解内容简单清晰,对大家认识和了解都有一定的帮助,对此感兴趣的朋友,接下来就跟随小编一起了解一下“注册登录功能,可以通过NodeJs+MySQL实现”吧。
本文实例为大家分享了nodejs+mysql实现注册登录功能的具体代码,供大家参考,具体内容如下
之前写过一个没有连接数据库的注册与登陆的实现,这次加上了数据库
刚刚接触后端,很多不完善的地方,有错误请指正
nodejs中mysql的写法:
//连接池 let db=mysql.createpool({ '配置'} ) db.query(`sql语句`,(err,data)=> { } )
并且在数据库中存储的密码应该是密文
function md5(str){ let obj=crypto.createhash('md5'); obj.update(str); return obj.digest('hex') } function md5_2(str){ return md5(md5(str)) }
服务端操作,在用户名与密码上添加了简单的校验,不完善,还需要改进
const http=require('http'); const fs=require('fs'); const mysql=require('mysql'); const url=require('url'); const zlib=require('zlib'); const crypto=require('crypto'); const _key='bsjhjqbj1; dqwxsxx+'; let server=http.createserver((req,res)=> { let { pathname,query} =url.parse(req.url,true); let { user,password} =query; switch(pathname){ case '/reg': if(!user){ res.write('{ "err":1,"msg":"用户名不能为空"} '); res.end(); } else if(!password){ res.write('{ "err":1,"msg":"密码不能为空"} '); res.end(); } else if(!/\w{ 4,16} $/.test(user)){ res.write('{ "err":1,"msg":"用户名应为大小写字母数字或下划线"} '); res.end(); } else if(/['|"]/.test(password)){ res.write('{ "err":1,"msg":"密码非法"} '); res.end(); } else{ db.query(`select username from users_table where username='${ user} '`,(err,data)=> { if(err){ res.write('{ "err":1,"msg":"数据库错误"} '); console.log(err) res.end() } else{ if(data.length> 0){ res.write('{ "err":1,"msg":"用户名已存在"} '); res.end(); } else{ res.write('{ "err":0,"msg":"注册成功"} '); db.query(`insert into users_table (id,username,password) values (0,'${ user} ','${ md5_2(password)} ')`); res.end(); } } } ) } break; case '/login': if(!user){ res.write('{ "err":1,"msg":"用户名不能为空"} '); res.end(); } else if(!password){ res.write('{ "err":1,"msg":"密码不能为空"} '); res.end(); } else if(!/\w{ 4,16} $/.test(user)){ res.write('{ "err":1,"msg":"用户名应为大小写字母数字或下划线"} '); res.end() } else if(/["|']/.test(password)){ res.write('{ "err":1,"msg":"密码非法"} '); res.end(); } else{ db.query(`select username,password from users_table where username='${ user} '`,(err,data)=> { if(err){ res.write('{ "err":1,"msg":"数据库错误"} '); res.end() } else if(data.length> 0){ if(md5_2(password)!=data[0].password){ res.write('{ "err":1,"msg":"用户名或密码不正确"} '); res.end(); } else{ res.write('{ "err":0,"msg":"登陆成功"} '); res.end(); } } else{ res.write('{ "err":1,"msg":"用户不存在"} ') } } ) } break; default: let rs=fs.createreadstream(`www${ pathname} `); let gz=zlib.creategzip(); res.setheader('content-encoding','gzip'); rs.pipe(gz).pipe(res); rs.on('error',err=> { res.writeheader(404); res.write('not found'); res.end(); } ); } } ); server.listen(8888);
关于“注册登录功能,可以通过NodeJs+MySQL实现”的内容就介绍到这,感谢各位的阅读,相信大家对注册登录功能,可以通过NodeJs+MySQL实现已经有了进一步的了解。大家如果还想学习更多知识,欢迎关注网络,小编将为大家输出更多高质量的实用文章!
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 注册登录功能,可以通过NodeJs+MySQL实现
本文地址: https://pptw.com/jishu/654480.html