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

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


一、安装express框架

"dependencies": {
    
    
  "body-parser": "^1.19.0",
  "express": "^4.17.1",
  "mysql": "^2.18.1"
}

express是一款基于node的web应用开发框架。

二、搭建本地服务

1.引入post请求body参数中间件

var express = require('express'); 
var bodyParser = require('body-parser') 

var app = express();
app.use(bodyParser.urlencoded({
    
     extended: false }))
app.use(bodyParser.json())

2.设置请求头

//设置跨域访问
app.all('*', function(req, res, next) {
    
    
   res.header("Access-Control-Allow-Origin", "*");
   res.header("Access-Control-Allow-Headers", "X-Requested-With");
   res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");
   res.header("X-Powered-By",' 3.2.1');
   res.header("Content-Type", "application/json;charset=utf-8");
   next();
});

3.连接数据库

// 连接数据库
var mysql = require('mysql');
var connection = mysql.createConnection({
    
    
  host     : 'localhost',
  user     : 'root',
  password : '12345678',
  database : 'test'
});
connection.connect(function(err){
    
    
    if (err) {
    
          
		console.log('连接数据库出错:' + err);
		connection.end();
		return;
	};
	console.log('数据库连接成功');    
});

4.用node实现简单的注册登录接口

// 登录
app.post("/login",function(req,res){
    
    
    let {
    
    name,password} = req.body
    var  userGetSql = `SELECT * FROM register WHERE name = '${
      
      name}' AND password = '${
      
      password}'`;
    //查 query
    connection.query(userGetSql,function (err, result) {
    
    
        if (err) throw err;
        console.log("result",result)
        if(result.length==0){
    
    
            console.log(("用户名或密码错误"))
            res.send({
    
    
                code:0,
                message:"用户名或密码错误"
            })
        }else{
    
    
            console.log(("登录成功"))
            res.send({
    
    
                code:200,
                message:"登录成功"
            })
        }
    });
})
// 注册
app.post("/register",function(req,res){
    
    
    var {
    
    name,password} = req.body
    var userGetSql = `SELECT * FROM register WHERE name = '${
      
      name}'`;
    var addSql = `INSERT INTO register (id,name,password) VALUES (0,?,?)`
    //查 query
    connection.query(userGetSql,function (err, result) {
    
    
        if (err){
    
    
            console.log('查询出错:' + err);
			return;
        };
        console.log("result",result)
        if(result.length==0){
    
    
            var inserInfo = [name, password]
            console.log(("注册成功"))
            connection.query(addSql,inserInfo,function (error, result){
    
    
                if (error){
    
    
                    console.log('注册出错:' + error);
					return;
                };
                res.send({
    
    
                    code:200,
                    message:"注册成功"
                })
            })
        }else{
    
    
            console.log(("用户已存在"))
            res.send({
    
    
                code:0,
                message:"用户已存在"
            })
        }
    });
})

三、构建简易的前端页面

这里需要三个页面,注册页登录页和首页
通过jquery的ajax去请求本地服务的接口

$('.login').click(function(){
    
    
            let username = $(".username").val()
            let password = $(".password").val()
            if(username && password){
    
    
                $.ajax({
    
    
                    url:"http://localhost:3000/login",
                    dataType:"json",
                    type:"post",
                    data:{
    
    name:username,password},
                    success:(res)=>{
    
    
                        if(res.code == 200){
    
    
                            alert("登录成功")
                            window.location.href = "./home.html"
                        }else{
    
    
                            alert(res.message)
                        }
                    },
                    error:(err)=>{
    
    
                        console.log("fail",err)
                    }
                })
            }else{
    
    
                alert("用户名密码不能为空")
            }
        })

注册一个用户名为admin的账号
在这里插入图片描述

请添加图片描述
注册成功之后会本地服务已经显示成功,数据库也插入了一条用户信息,此时会跳转到登录页进行登录
在这里插入图片描述
在这里插入图片描述
在输入刚刚注册完的账号之后就可以登录了
在这里插入图片描述


记录一下学习记录 2021/8/26,部分思路也是学习其他博客

猜你喜欢

转载自blog.csdn.net/m0_48995032/article/details/119930608