Node.js+Mysql+Express实现登录注册功能

node.js+mysql+express实现简单的登录注册功能,如下:

原理解析:

实现注册功能的原理为:根据用户输入的信息,查询数据库中是否有这个账号,没有则允许注册并把数据插入到数据库中,已经注册了就不允许注册。

实现登录功能的原理为:根据用户输入的信息,查询这个账号对应的密码是否与用户输入的密码一致,一致则登录成功,否则登录失败。

准备工作:

创建一个test文件夹,在test目录下打开cmd执行以下命令:

安装express:npm install express

安装mysql:npm install mysql 

 设计数据库:

建立名字为test的数据库,创建名字为user的表,在表中创建id,account,password,name字段,其中id,account为主键。如下图所示:

扫描二维码关注公众号,回复: 15263227 查看本文章

 详细代码解析如下:

创建login.html文件,实现注册页面:

<html>
<body>
<!--设置行动地址-->
<form action="http://127.0.0.1:3000/login" method="GET">
<!--设置元素名字-->
帐号: <input type="text" name="account">  <br>
密码: <input type="text" name="password">
<input type="submit" value="Submit">
</form>
</body>
</html>

创建register.html文件,实现登录页面:

<html>
<body>
<form action="http://127.0.0.1:3000/process_get" method="GET">
帐号: <input type="text" name="account">  <br>
密码: <input type="text" name="password"><br>
姓名: <input type="text" name="name">
<input type="submit" value="Submit">
</form>
</body>
</html>

 创建1.js文件,实现登录注册功能:

//请求express

var express = require('express');

//创建express对象

var app = express();

//请求mysql

var mysql  = require('mysql');

//设置数据库连接信息

var connection = mysql.createConnection({    

  host     : 'localhost',      

  user     : 'root',            

  password : '123456',      

  port: '3306',                  

  database: 'test'

});

//建立连接

connection.connect();

//设置静态文件路径

app.use(express.static('public'));

//在浏览器中访问localhost:3000,默认打开login.html页面

app.get('/', function (req, res) {

   res.sendFile( __dirname + "/" + "login.html" );

})

//创建实现登录功能的路由

app.get('/login',function (req,res) {

    //获取用户输入的账号,密码

    var response = {

       "account":req.query.account,

       "password":req.query.password,

    };

   //创建查询数据的sql语句实现登录功能,查询账号和密码并且与用户输入的账号密码完全一致

    var selectSQL = "select account,password from user where account = '"+req.query.account+"' and password = '"+req.query.password+"'";

    //进行数据库操作

    connection.query(selectSQL,function (err, result) {

        //打印错误信息

        if(err){

         console.log('[login ERROR] - ',err.message);

         return;

        }

        //如果查询结果为空,则登录失败,否则登录成功

        if(result=='')

        {

            console.log("帐号密码错误");

            res.end("fail");

        }

        else

        {

            console.log("登录成功");

            res.end("success");

        }

    });

    console.log(response);

})

//在浏览器中访问localhost:3000/register.html,打开register.html页面

app.get('/register.html', function (req, res) {

   res.sendFile( __dirname + "/" + "register.html" );

})

//创建实现注册功能的路由

app.get('/process_get', function (req, res) {

   //获取用户输入的账号,密码,姓名

   var response = {

       "account":req.query.account,

       "password":req.query.password,

       "name":req.query.name

   };

   //创建增加数据的sql语句实现注册功能

   var  addSql = 'INSERT INTO user(account,password,name) VALUES(?,?,?)';

   //获取用户输入的数据

   var  addSqlParams = [req.query.account,req.query.password,req.query.name];

   connection.query(addSql,addSqlParams,function (err, result) {

        //如果插入数据失败,则注册失败,否则注册成功

        if(err){

         console.log('[INSERT ERROR] - ',err.message);

         res.end("fail");

         //如果失败就直接return不会执行下面的代码

         return;

        }

        res.end("success");

        console.log("注册成功");

    });

   console.log(response);

})

//创建服务器

var server = app.listen(3000, function () {

  console.log("访问地址为 localhost:3000")

})

执行程序:node 1.js

访问登录页面:localhost:3000 

访问注册页面:localhost:3000/register.html

以上为node.js+mysql+express实现登录注册的详细知识点。 

猜你喜欢

转载自blog.csdn.net/m0_70819559/article/details/126329677