node.js+mysql实现简单登录注册

本文通过Node.js和MySQL,参考B站博主老张的教程,实现了登录和注册功能。首先介绍登录页面(denglu.html)的设计,接着展示server.js的关键代码,包括数据解析、数据库连接和操作。在登录功能中,通过比较用户输入与数据库信息进行匹配;注册功能则是将数据插入数据库。最后展示了实际运行效果。

js参考B站博主老张简单实现了登录和注册功能。

html参考博客登录页面代码。

首先是登录页面的设计

denglu.html如下

body 设计背景,可以通过改图片地址来实现背景改变

body {
      background: url('https://pic3.zhimg.com/v2-58d652598269710fa67ec8d1c88d8f03_r.jpg') no-repeat;
      background-size: 100% 130%;
    }

 login_box封装整体样式

#login_box {
      width: 20%;
      height: 400px;
      background-color: #ffffff60;
      margin: auto;
      margin-top: 10%;
      text-align: center;
      border-radius: 10px;
      padding: 50px 50px;
    }

 对不同部分设计样式

h2 {
      color: #6a00ff;
      margin-top: 5%;
    }

    #input-box {
      margin-top: 5%;
    }

    span {
      color: rgb(255, 0, 0);
    }

    input {
      border: 0;
      width: 60%;
      font-size: 15px;
      color: rgb(0, 0, 0);
      background: transparent;
      border-bottom: 2px solid rgb(0, 187, 255);
      padding: 5px 10px;
      outline: none;
      margin-top: 10px;
    }

    button {
      margin-top: 50px;
      width: 60%;
      height: 30px;
      border-radius: 10px;
      border: 0;
      color: rgb(255, 255, 255);
      text-align: center;
      line-height: 30px;
      font-size: 15px;
      background-image: linear-gradient(to right, #d8c6ff, #6a00ff);
    }

    #sign_up {
      margin-top: 45%;
      margin-left: 60%;
    }

    a {
      color: #1eff00;
    }

 body部分,注册链接改成自己的注册html地址就行

<div id="login_box">
    <h2>LOGIN</h2>
    <form method="post" action="http://localhost:8080">
    <div id="input_box">
      <input type="text" name="userName">
    </div>
    <div class="input_box">
      <input type="password" name="userPwd">
    </div>
      <input type="submit" value="登录">    
    </form>
    <a href="file:///C:/Users/w/Desktop/demo01/zhuce.html">前去注册</a>

zhuce.html注册页面因为大体和登录一样,就不做展示

然后就是server.js代码

首先导入这几个模块

const http = require("http");
const querystring = require("querystring");
const mysql = require("mysql");

其次采用post,分为req.on data和req.on end

querystring.parse是为了让得到的内容变成我想要的格式

let postVal = "";
        req.on("data", (chunk) => {
            postVal = postVal + chunk;
        })
        req.on("end", () => {
            let formVal = querystring.parse(postVal);
            let userName = formVal.userName;
            let userPwd = formVal.userPwd;

再就是连接数据库,这里要修改成自己本地数据库的信息

const connection = mysql.createConnection({
                host: "localhost",
                user: "root",
                password: "123456",
                database: "demo01",
            })
            connection.connect();

 这里我的MySQL可视化用的是Navicat,用的限时免费>.<

 

登录功能

通过比对输入和数据库信息,匹配则登录成功

 //登录功能
            connection.query("select * from user where userName=? and userPwd=?", [userName, userPwd], (err, results, fields) => {
                if (err) throw err;
                console.log(results)
                if (results.length > 0) {
                    res.write("登录成功")
                }
                res.end();
            })

 注册功能

只需把查询语句换成插入语句

第一个参数为0是因为我在设置数据库中id属性为自动递增

//注册功能
            connection.query("insert into user value (?,?,?)", [0, userName, userPwd], (err, results, fields) => {
                if (err) throw err;
                console.log(results)
                if (results.length > 0) {
                    res.write("注册成功")
                }
                res.end();

最后不要忘了监听

server.listen(8080);

效果展示

 

 

 这里id显示78是因为我之前试验了很多次,所以递增到这里了

 

 

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

竹影响心情

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值