node如何验证用户名是否被注册?

下面代码实现的功能是:用node.js连接mysql实现用户的注册和登录,这里主要实现的是后端的验证代码,前端显示部分没具体写出。

node验证用户名是否被注册方法如下:

1、首先建立数据库reji,数据表user,user表中有account(主键)password和name三个

2、用户进入注册界面,用户输入要注册的账号和密码,前端把用户输入的信息发送给后端,后端对数据进行判断(查询数据库中是否有这个帐号),如果还未注册就允许注册同时把帐号密码和名称写入数据库中并给前端返回1,如果已经注册了就不再允许注册并给前端返回0。

3、用户进入登录界面,用户输入要登录的账号和密码,前面把用户输入的信息发送给后端,后端对数据进行判断(查询这个帐号对应的密码是否与用户输入的密码相符),如果查询到的密码不符则登录失败后端给前面返回0,如果查询到的密码与用户输入的密码相符后端给前面返回1.

后端部分代码:

var mysql  = require('mysql');  //导入mysql包
  
var connection = mysql.createConnection({    
  host     : 'localhost',      
  user     : 'root',             
  password : '123456',      
  port: '3306',                  
  database: 'reji'
});
  
connection.connect();
 
var express = require('express');
var app = express();
  
app.use(express.static('public'));
 //参数里为'/'则是默认打开页面
app.get('/', function (req, res) {
   res.sendFile( __dirname + "/" + "index.html" );
})
 
 
app.get('/login',function (req,res) {
    var response = {
       "account":req.query.account,
       "password":req.query.password,
   };
   var selectSQL = "select account,password from user where account = '"+req.query.account+"'
    and password = '"+req.query.password+"'";
   //var selectSQL = "select password from user where account='"+req.query.account+"'";
   var  addSqlParams = [req.query.account,req.query.password];
      connection.query(selectSQL,function (err, result) {
        if(err){
         console.log('[login ERROR] - ',err.message);
         return;
        }
        //console.log(result);
        if(result=='')
        {
            console.log("帐号密码错误");
            res.end("0");//如果登录失败就给客户端返回0,
        }
        else
        {
            console.log("OK");
            res.end("1");//如果登录成就给客户端返回1
        }
});
   console.log(response);
   //res.end(JSON.stringify(response));
})
 
app.get('/register.html', function (req, res) {
   res.sendFile( __dirname + "/" + "register.html" );
})
 
//注册模块
var  addSql = 'INSERT INTO user(account,password,name) VALUES(?,?,?)';
 
app.get('/process_get', function (req, res) {
  
   // 输出 JSON 格式
   var response = {
       "account":req.query.account,
       "password":req.query.password,
       "name":req.query.name
   };
   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("0");//如果注册失败就给客户端返回0
         return;//如果失败了就直接return不会继续下面的代码
        }
        res.end("1");//如果注册成功就给客户端返回1
        console.log("OK");
});
   console.log(response);
   //res.end(JSON.stringify(response));
})
  
 
 
var server = app.listen(3000, function () {
  
  var host = server.address().address
  var port = server.address().port
  
  console.log("应用实例,访问地址为 http://%s:%s", host, port)
  
})

 前端部分代码:index.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>

以上就是node如何验证用户名是否被注册?的详细内容,更多请关注0133技术站其它相关文章!

赞(0) 打赏
未经允许不得转载:0133技术站首页 » Node.js答疑