vue+elementUI+node实现登录模块--验证用户名是否正确
验证用户名是否正确
1==》// 引入qs import qs from 'qs';
2===》收集用户账号后, 发送请求 把参数发给后端(把用户名和密码发给后端 验证是否存在这个账号)
3===》
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | < template > < div > < el-form :model="ruleForm" status-icon :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm" > < el-form-item label="用户名" prop="user"> < el-input v-model.number="ruleForm.user"></ el-input > </ el-form-item > < el-form-item label="密码" prop="pass"> < el-input type="password" v-model="ruleForm.pass" autocomplete="off"></ el-input > </ el-form-item > < el-form-item label="确认密码" prop="checkPass"> < el-input type="password" v-model="ruleForm.checkPass" autocomplete="off"></ el-input > </ el-form-item > < el-form-item > < el-button type="primary" @click="submitForm('ruleForm')">提交</ el-button > < el-button @click="resetForm('ruleForm')">重置</ el-button > </ el-form-item > </ el-form > </ div > </ template > |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 | <script> // 引入qs import qs from "qs" ; export default { data() { var checkAge = (rule, value, callback) => { if (!value) { return callback( new Error( "用户名不能为空" )); } //它的意思是 当符合要求的条件的时候,就触发回调函数。这个回调的函数是显示成功的标识 setTimeout(() => { callback(); }, 500); }; var validatePass = (rule, value, callback) => { if (value === "" ) { callback( new Error( "请输入密码" )); } else { if ( this .ruleForm.checkPass !== "" ) { this .$refs.ruleForm.validateField( "checkPass" ); } callback(); } }; var validatePass2 = (rule, value, callback) => { if (value === "" ) { callback( new Error( "请再次输入密码" )); } else if (value !== this .ruleForm.pass) { callback( new Error( "两次输入密码不一致!" )); } else { callback(); } }; return { // 存放用户的数据是 ruleForm 而不是data ruleForm: { pass: "" , checkPass: "" , user: "" }, rules: { pass: [{ validator: validatePass, trigger: "blur" }], checkPass: [{ validator: validatePass2, trigger: "blur" }], user: [{ validator: checkAge, trigger: "blur" }] } }; }, methods: { submitForm(formName) { this .$refs[formName].validate(valid => { if (valid) { alert( "submit!" ); //获取用户的数据哦 //console.log(this.ruleForm.user, this.ruleForm.pass ) //用一个对象 username是存放的名字哦 用的是一个爹对象将他们存起来 let params = { username: this .ruleForm.user, password: this .ruleForm.pass }; console.log(params); // 发送请求 把参数发给后端(把用户名和密码发给后端 验证是否存在这个账号) this .axios .post( "http://127.0.0.1:666/login/checklogin" , qs.stringify(params)) .then(response => { // 接收后端返回的数据 let { error_code, reason } = response.data; // 判断 if (error_code === 0) { // 弹成功提示 this .$message({ type: "success" , message: reason }); // 跳转到后端首页 this .$router.push( "/" ); } else { // 弹失败提示 this .$message.error(reason); } }) . catch (err => { console.log(err); }); } else { // 否则就是false alert( "前端验证失败 不能提交给后端!" ); return false ; } }); }, resetForm(formName) { this .$refs[formName].resetFields(); } } }; </script> |
后端node.js代码
const express = require("express"); const router = express.Router(); // 引入连接数据库的模块 const connection = require("./connect"); // 统一设置响应头 解决跨域问题 router.all("*", (req, res, next) => { // 设置响应头 解决跨域(目前最主流的方式) res.header("Access-Control-Allow-Origin", "*"); next(); }); /* 验证用户名和密码是否正确的路由 */ router.post("/checklogin", (req, res) => { // 接收用户名和密码 let { username, password } = req.body; // 构造sql(查询用户名和密码是否存在) const sqlStr = `select * from account where username='${username}' and password='${password}'`; // 执行sql语句 connection.query(sqlStr, (err, data) => { if (err) throw err; // 判断 if (!data.length) { // 如果不存在 res.send({ error_code: 1, reason: "请检查用户名或密码!" }); } else { res.send({ error_code: 0, reason: "欢迎您!登录成功!" }); } }); }); module.exports = router;
遇见问题,这是你成长的机会,如果你能够解决,这就是收获。
作者:晚来南风晚相识
出处:https://www.cnblogs.com/IwishIcould/
本文版权归作者所有,欢迎转载,未经作者同意须保留此段声明,在文章页面明显位置给出原文连接
如果文中有什么错误,欢迎指出。以免更多的人被误导。
出处:https://www.cnblogs.com/IwishIcould/
想问问题,打赏了卑微的博主,求求你备注一下的扣扣或者微信;这样我好联系你;(っ•̀ω•́)っ✎⁾⁾!
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,或者关注博主,在此感谢!
万水千山总是情,打赏5毛买辣条行不行,所以如果你心情还比较高兴,也是可以扫码打赏博主(っ•̀ω•́)っ✎⁾⁾!
想问问题,打赏了卑微的博主,求求你备注一下的扣扣或者微信;这样我好联系你;(っ•̀ω•́)っ✎⁾⁾!

支付宝

微信
如果文中有什么错误,欢迎指出。以免更多的人被误导。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY