Node.js登陆注册
哒哒哒Q 人气:01.服务器端
在项目里创建一个json文件用来存储数据,通过express创建服务器对象,fs模块对文件进行读写。
运用post请求
代码如下:
var express = require('express') var fs = require("fs") var app = express() app.use(express.static("www")) app.use(express.urlencoded({extended:false})) // 先获取user.json里面的数据和req.body进行对比 fs.readFile("./user.json",function(err,data){ if (err) { userArr = [] }else{ userArr = JSON.parse(data) } }) app.post("/zhuce",function(req,res,next){ // 输入框要验证的数据判断机制: // 可以把正则表达式判断放在前端:用户体验好,判断快 // 也可以把正则表达式判断放在后端:判断相对安全,判断慢 // console.log(req.body); var u = req.body.v1 var p = req.body.v2 var isZhuce = userArr.some(function(v,i,a){ return v.user === u }) if (isZhuce) { res.json({ code:201, shibai:"该账号已注册" }) }else{ userArr.push({user:`${req.body.v1}`,psw:`${req.body.v2}`}) fs.writeFile("./user.json",JSON.stringify(userArr),function(){ res.json({ code:200, chenggong:"index2.html" }) }) } }) app.post("/denglu",function(req,res,next){ var deng = userArr.findIndex(function(v,i,a){ return v.user === req.body.v1 }) console.log(deng); if (deng != -1) { if (userArr[deng].psw === req.body.v2) { res.json({ code:251, mima:"登录成功" }) }else{ res.json({ code:252, mima:"密码错误" }) } }else{ res.json({ code:250, mima:"该账号未注册" }) } }) app.listen(3000,function(){ console.log("run"); })
2.注册页面
在前端发送post请求传送数据,代码如下:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>注册界面</title> </head> <body> <form action=""> <!-- pattern 正则判断 required 允许输入框提交进行正则判断--> 用户名:<input type="text" name="user" required id="user" pattern="^1[3578]\d{9}$"><br> 密 码:<input type="text" name="psw" required id="psw" pattern="^.{6,}$"><br> 确认密码:<input type="text" name="cpsw" id="cpsw"><br> <button id="b1">提交</button> </form> <script src="./jquery.js"></script> <script> $("#b1").on("click",function(e){ e.preventDefault() if (psw.value!=cpsw.value) { alert("两次密码不一致,傻逼") return } $.post({ url:"http://127.0.0.1:3000/zhuce", data:{ v1:user.value, v2:psw.value, }, success:res=>{ if (res.shibai) { alert(`${res.shibai}`) } if (res.chenggong) { location.href = `${res.chenggong}` } } }) }) </script> </body> </html>
3.登录页面
依然使用post请求
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <form action=""> <!-- pattern 正则判断 required 允许输入框提交进行正则判断--> 用户名:<input type="text" name="user" required id="user" pattern="^1[3578]\d{9}$"> 密 码:<input type="text" name="psw" required id="psw" pattern="^.{6,}$"> <button id="b1">提交</button> </form> <script src="./jquery.js"></script> <script> $("#b1").click(function(e){ e.preventDefault() $.post({ url:"http://127.0.0.1:3000/denglu", data:{ v1:user.value, v2:psw.value, }, success:function(res){ console.log(res); alert(`${res.mima}`) } }) }) </script> </body> </html>
加载全部内容