• express+mysql实现简单的登录注册功能


    登录页面图:

               

    node.js文件代码:

    const express=require("express");
    const app=express();
    const path=require("path")
    const cors=require("cors")
    const bodyParser=require("body-parser")
    const db=require("./util/configDb.js")
    app.listen(3000,()=>{
        console.log("app start........")
    })
    app.use(bodyParser.urlencoded({
        extended:true
    }))
    app.use(bodyParser.json())
    app.use(cors())
    app.use("/static",express.static(path.join(__dirname,"./views")))
    app.post("/login",(req,res)=>{
        console.log("服务端",req.body)
        const {name,pwd}=req.body;
        let sql=`select * from user where name=${name} and pwd=${pwd}`
        console.log("sql",sql)
        let sqlObj=[]
        console.log("sqlObj",sqlObj)
        let callBack=function(err,data){
            console.log("data:",data.length)
            if(err){
                console.log("失败")
                return
            }
            if(data.length!=1){
            console.log("密码或用户名出错")
            res.send({
                msg:"用户名或密码出错",
                code:400
            })
            return
            }
            res.send({
                msg:"成功登录",
                code:200
            })
        }
        db.dbConn(sql,sqlObj,callBack)
        
    })
    configDb.js文件代码
    const mysql=require("mysql")
    
    module.exports={
        config:{
            host:"localhost",
            user:"root",
            password:"",
            database:"infodb"
        },
        dbConn:function(sql,sqlObj,callBack){
            let pool=mysql.createPool(this.config)
            pool.getConnection((err,conn)=>{
                if(err){
                    console.log(err)
                    return;
                }
                conn.query(sql,sqlObj,callBack)
                conn.release();
                
            })
        }
    }

    index.html文件代码:

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8">
            <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
            <title>登录</title>
            <style type="text/css">
                *{
                    margin: 0px;
                    padding: 0px;
                }
                body{
                    width: 100%;
                    height: 100%;
                    background-color: #f5f5f5;
                }
                .area-box{
                    display: flex;
                    flex-direction: column;
                    justify-content: center;
                    align-items: center;
                    margin-top: 100px;
                }
                .login-group{
                    /*  100%; */
                    height: 40px;
                    background-color: white;
                    padding: 10px 30px;
                }
                .login-group input{
                    height: 24px;
                    outline: none;
                    border-radius: 20px;
                    padding-left: 10px;
                }
                .login-btn{
                    margin-top: 20px;
                }
                .login-btn button{
                    width: 200px;
                    height: 30px;
                    line-height: 30px;
                    border-radius: 20px;
                    outline: none;
                }
            </style>
        </head>
        <body>
            <div class="area-box">
                <div class="login-group">
                    <label>用户:</label>
                    <input type="text" name="" id="phone" placeholder="请输入手机号" />
                </div>
                <div class="login-group">
                    <label>密码:</label>
                    <input type="password" name="" id="pwd" placeholder="请输入密码" />
                </div>
                <div class="login-btn">
                    <button type="button" id="login">登录</button>
                </div>
            </div>
            <script src="js/jquery-3.3.1.js" type="text/javascript" charset="utf-8"></script>
            <script type="text/javascript">
                let phone=$("#phone")
                let pwd=$("#pwd")
                $("#login").click(function(){
                    if(phone.val().length==0||pwd.val().length==0){
                        alert("用户或密码不能为空")
                        return;
                    }
                    var getPhone=phone.val()
                    var getPwd=pwd.val()
                    var data={
                        "name":getPhone,
                        "pwd":getPwd
                    }
                    $.ajax({
                        type:"POST",
                        url:"http://localhost:3000/login",
                        data:data,
                        success:res=>{
                            console.log(res)
                            if(res.code==200){
                                alert(res.msg)
                            }else{
                                alert(res.msg)
                            }
                        },
                        error:err=>{
                            console.log(err)
                        }
                    })
                })
            </script>
        </body>
    </html>

    下面是注册代码:

    node.js代码;

    app.post("/register",(req,res)=>{
        const name=req.body.name;
        console.log(name)
        const pwd=req.body.pwd;
        console.log(pwd)
        let sql="select * from user where nickname=?"
        let sqlArr=[name]
        let callBack=(err,data1)=>{
            if(err){
                console.log(err)
                return;
            }
            console.log("wishing数据",data1)
            if (data1.length>=1){//测试查找的数据的长度,如果大于0就代表数据库中存在这个用户
                res.send({
                    code:400,
                    msg:"该用户已存在",
                    affectedRows:data1.affectedRows
                })
                return;
            }else{
                let sql ="insert into user set nickname=?,password=?,state=1";
                let sqlArr=[name,pwd]
                let callBack=(err,data)=>{
                    if(err){
                        console.log(err)
                        return;
                    }
                    res.send({
                        code:200,
                        msg:"注册成功",
                        affectedRows:data.affectedRows
                    })
                    // console.log(data)
                    return;
                }
                db.dbConn(sql,sqlArr,callBack)
            }
        }
        db.dbConn(sql,sqlArr,callBack)
    })

    html代码:

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8">
            <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
            <title>登录</title>
            <style type="text/css">
                *{
                    margin: 0px;
                    padding: 0px;
                }
                body{
                    width: 100%;
                    height: 100%;
                    background-color: #f5f5f5;
                }
                .area-box{
                    display: flex;
                    flex-direction: column;
                    justify-content: center;
                    align-items: center;
                    margin-top: 100px;
                }
                .login-group{
                    /*  100%; */
                    height: 40px;
                    background-color: white;
                    padding: 10px 30px;
                }
                .login-group input{
                    height: 24px;
                    outline: none;
                    border-radius: 20px;
                    padding-left: 10px;
                }
                .login-btn{
                    margin-top: 20px;
                }
                .login-btn button{
                    width: 200px;
                    height: 30px;
                    line-height: 30px;
                    border-radius: 20px;
                    outline: none;
                }
    
            </style>
        </head>
        <body>
            <div class="area-box">
                
                <div class="login-group">
                    <label>用户:</label>
                    <input type="text" name="" id="username" placeholder="请输入用户名" />
                </div>
                <div class="login-group">
                    <label>密码:</label>
                    <input type="password" name="" id="pwd" placeholder="请输入密码" />
                </div>
                <div class="login-btn">
                    <button type="button" id="login">注册</button>
                </div>
            </div>
            <script src="js/jquery-3.3.1.js" type="text/javascript" charset="utf-8"></script>
            <script type="text/javascript">
                let username=$("#username")
                let pwd=$("#pwd")
                $("#login").click(function(){
                    console.log("开始")
                    if(username.val().length==0||pwd.val().length==0){
                        alert("用户或密码不能为空")
                        return;
                    }
                    var getPhone=username.val()
                    var getPwd=pwd.val()
                    var data={
                        name:getPhone,
                        pwd:getPwd
                    }
                    console.log(data)
                    $.ajax({
                        type:"POST",
                        url:"http://localhost:3000/register",
                        data:data,
                        success:res=>{
                            console.log(res)
                            if(res.code==200){
                                alert(res.msg)
                                document.location.href="index.html"
                            }else{
                                alert(res.msg)
                            }
                        },
                        error:err=>{
                            console.log(err)
                        }
                    })
                })
            </script>
        </body>
    </html>

     另一个注册代码:

    app.post("/register",(req,res)=>{
        const name=req.body.name;
        const pwd=req.body.pwd;
        console.log(name,pwd)
        // 首先要根据传递过来的数据查询数据库中是否已经存在该用户了
        function regfun(){
            var insert="insert into user (name,pwd) values (?,?)"
            let insertArr=[name,pwd]
            let insertCallBack=((err,data)=>{
                if(err){
                    console.log(err)
                    return;
                }
                if(data..affectedRows==1){
                    req.session.info={
                        name:name,
                        pwd:pwd
                    }
                    res.send({
                        code:200,
                        msg:"注册成功"
                    })
                }else{
                    res.send({
                        code:400,
                        msg:"注册失败"
                    })
                }
            })
            db.dbConn(insert,insertArr,insertCallBack)
        }
        
        let sql1="select * from user where name=?";
        let sqlArr=[name]
        let callBack=((err,data)=>{
            if(err){
                console.log(err)
                return;
            }
            if(data.length==1){
                res.send({
                    code:201,
                    msg:"该用户已经存在"
                })
            }else{
                regfun()
            }
            
        })
        db.dbConn(sql1,sqlArr,callBack)
        
    })
  • 相关阅读:
    轻松把你的项目升级到PWA
    聊聊React高阶组件(Higher-Order Components)
    java NIO系列教程2
    java NIO系列教程1
    个人笔记
    onclick时间加return和不加return的区别
    URL编码分析与乱码解决方案
    第九天 1-8 RHEL7软件包管理
    第八天 RHEL7.2 文件权限管理(第一部分)
    第七天 Linux用户管理、RHEL6.5及RHEL7.2 root密码破解、RHEL6.5安装vmware tools
  • 原文地址:https://www.cnblogs.com/shanchui/p/12886464.html
Copyright © 2020-2023  润新知