当前位置: 首页 > 后端技术 > Node.js

node+ajax+mysql实现登录注册

时间:2023-04-03 16:29:49 Node.js

简介本人是前端小白,前辈有段时间向我推荐了这个社区。但是总觉得自己水平太低,一直没写上去。最近开始学习nodejs,所以做了一个demo分享给大家。第一次写,还望有不足之处。注册html的基本表单html代码就不详细说了,这不是重点,直接上传代码:

registration

Register
注册js这里的js主要是用到了jquery,不会jquery的可以先学学。jquery使用ajax很方便。这里将用户名、昵称、密码三个参数以get的形式传递给后台。在url中写上和后台协商的地址,然后是成功和失败的回调函数。你觉得对于经常使用ajax的人来说很常见吗?是的,这样写什么背景语言都无所谓。$("#register").click(function(){$.ajax({url:"/regist",type:"GET",data:{username:$("#email-two").val(),nickname:$("#nikename").val(),password:$("#password-two").val()},success:function(data){//alert后台返回值alert(data);},错误:function(){alert('访问失败');}});});注册节点这里我使用的是nodejs的express框架。这个框架非常容易上手,非常适合我们这样的新手。如果想直接使用这里的代码,肯定会报错。你需要用npm安装express和mysql。当然,至于mysql,需要在本地安装mysql。如果你对mysql一知半解,那么你应该先了解一下mysql。其实也可以用nodejs向文件写入数据,就不需要mysql了。对于其他人,请参阅代码注释。varexpress=require("快递");//导入expressvarevents=require('events');varemitter=newevents.EventEmitter();//创建监听器对象(也可以直接返回值,不要用这个)varapp=express();varpath=require("path");varmysql=require("mysql");//导入mysqlvardirname=__dirname;//指向当前js路径app.use(express.static(path.join(__dirname,'project')));//这里可以直接访问你的静态文件,比如你的index.html/*----registration---*/app.get("/regist",function(req,res){//获取路径get请求,并从前台获取参数//创建数据库连接varconnection=mysql.createConnection({host:"localhost",user:"root",password:"yourpassword",database:"node"});//连接数据库connection.connect();//监听返回参数emitter.on("ok",function(){returnres.end("注册成功");//返回数据给foreground});emitter.on("false",function(){returnres.end("usernamealreadyexists");//返回数据到前台});varsql="insertintouser(username,password,nickname)values(?,?,?)";//向user表写入数据varsqlValue=[req.query.username,req.query.password,req.query.nickname];connection.query(sql,sqlValue,function(err){//执行sql语句if(err){console.log(err.message);//输出数据库错误信息emitter.emit("false");//返回失败}emitter.emit("ok");//返回成功});连接结束();//关闭数据库});app.listen(8081);//设置请求的端口号,可以在本地访问localhost://8081(随便写一个未占用的端口)登录html也是一个简单的表单内容,直接上传代码:

登录

Login
这里的登录js也是用了ajax请求,和注册请求基本一样,传递用户名和密码后台,我就不多说了$("#userLogin").click(function(){$.ajax({url:"/login",type:"GET",data:{username:$("#email-one").val(),password:$("#password-one").val()},success:function(data){//alert后台返回的参数alert(data);},error:function(){alert('访问失败');}});});这里的登录节点和上面的注册nodejs类似,只是逻辑略有不同,请看注释。这里登录也是写在同一个js文件中,所以不是一个一个导入某些文件,而是直接使用app对象,所以这里不需要监听器。app.get("/login",function(req,res){//获取login传递的值//创建数据库连接varconnection=mysql.createConnection({host:"localhost",user:"root",password:"yourpassword",database:"node"});//连接到数据库connection.connect();varsql="select*fromuserwhereusername='"+req.query.username+"'andpassword='"+req.query.password+"'";//查询数据库中的用户名和密码connection.query(sql,function(err,result){//执行sql语句并返回结果if(err){res.end("登录失败");//数据库错误console.log(err);}if(result.length==0){res.end("用户名和密码不正确");//否匹配到数据库返回参数}else{res.end("登录成功");//返回登录成功}})connection.end();//关闭数据库})这是小白第一次发文,希望和大家分享我和我一样的菜鸟分享。本文如有不足之处,还望各位高手指正。