亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > JS > 正文

Nodejs實現用戶注冊功能

2024-05-06 16:49:56
字體:
來源:轉載
供稿:網友

1創建連接池對象

2導出連接池對象

/** * 1.引入mysql模塊 * 2.創建連接池對象 * 3.導出連接池對象 */const mysql = require('mysql');var pool = mysql.createPool({  host:'localhost',  port:'3306',  user:'xxx',  password:'xxx',  database:'xxx',  connectionLimit:20});module.exports = pool;

1托管靜態資源到public

2使用body-parser中間件

3使用路由器掛在到指定的位置

//引入express模塊const express = require('express');//引入路由器const userRouter = require('./routes/user.js');const productRouter = require('./routes/product.js');const myproRouter = require('./routes/mypro.js');const demoRouter = require('./routes/demo.js');const bodyParser = require('body-parser');//創建web服務器var server = express();//監聽端口server.listen(8080);//托管靜態資源server.use(express.static('public'));server.use(express.static('ajaxdemo'));server.use(express.static('mypro'));server.use(express.static('js'));server.use(express.static('css'));server.use(express.static('bootstrap'));server.use(express.static('img'));//使用body-parser中間件server.use(bodyParser.urlencoded({  extended:false}));//掛載路由器server.use('/user',userRouter);server.use('/demo',demoRouter);

1引入連接池模塊

2創建路由器對象

3往路由器中添加路由

4在路由中使用連接池

5導出路由器

/*  1.引入express  2.創建路由器對象  3.添加路由  4.導出路由器  5.引入連接池對象  6.將數據插入到數據庫中*/const express = require('express');const pool = require('../pool.js');var router = express.Router();//查看所有數據router.get('/sele', (req, res) => {  //驗證數據是否為空  var obj = req.query;  //console.log('query',obj);  for(var key in obj) {    if(!obj[key]) {      res.send('數據不能為空');      return;    }  }  var sqlselect = 'select * from xxx';  pool.query(sqlselect,(err, result) => {    if(err) throw err;    if(result.length > 0) {      res.send(result);    }  });});//查看用戶名router.get('/seleUname', (req, res) => {  //驗證數據是否為空  var obj = req.query;  //console.log('query',obj);  for(var key in obj) {    if(!obj[key]) {      res.send('數據不能為空');      return;    }  }  var sqlselect = 'select uname from xxx where uname = ?';  pool.query(sqlselect,[obj.uname],(err,result) => {    if(err) throw err;    if(result.length > 0) {      console.log(result.tength);      res.send('1');    }else{      res.send('0');    }  });});router.post('/reg', (req, res) => {  var obj = req.body;  console.log('body',obj);  for(var key in obj){    if(!obj[key]){      res.send('內容不能為空');      return;    }  }  var selectInsert = 'insert into xxx set ?';  pool.query(selectInsert, [obj], (err, result) => {    if(err) throw err;    if(result.affectedRows > 0) {      console.log(result.affectedRows)      res.send('1');    } else {      res.send('0');      console.log(result.affectedRows)    }  });});//導出路由器module.exports = router;

4.html頁面

<!doctype html><html>  <head>    <meta charset="UTF-8">    <title>Document</title>    <!--<link rel="stylesheet" type="text/css" href="/code.css" />-->    <script src="/reg.js" type="text/javascript" charset="utf-8"></script>    <script src="/jquery.min.js" type="text/javascript" charset="utf-8"></script>    <script src="/bootstrap.min.js" type="text/javascript" charset="utf-8"></script>    <link rel="stylesheet" type="text/css" href="/bootstrap.css" />    <style type="text/css">      *{        margin: 0;        padding: 0;      }      body{        background: url(/true.png) no-repeat;        background-size: cover;        overflow-x: hidden;        overflow-y: hidden;      }      #box{        width: 700px;        height: 500px;        left: 50%;        top: 50%;        margin-left: -350px;        margin-top: -250px;        position: absolute;      }    </style>  </head>  <body>    <div id="box">      <div class="container">      <div class="row clearfix">        <div class="col-md-10 column">          <form class="form-horizontal" role="form">            <div class="form-group">              <label for="inputEmail3" class="col-sm-2 control-label">UserName:</label>              <div id="uname_box" class="col-sm-6">                <input id="uname" name="uname" type="text" class="form-control" placeholder="Please enter a user name" />              </div>              <div id="p1">              </div>            </div>            <div class="form-group">              <label for="inputPassword3" class="col-sm-2 control-label">UserPassword:</label>              <div class="col-sm-6">                <input id="upwd" name='upwd' type="password" class="form-control" placeholder="Please enter your user password"/>              </div>              <div id="p2">              </div>            </div>            <div class="form-group">              <label for="inputPassword3" class="col-sm-2 control-label">ConfirmPassword:</label>              <div class="col-sm-6">                <input id="upwd1" name='upwd' type="password" class="form-control" placeholder="Confirm user password"/>              </div>              <div id="p3">              </div>            </div>            <div class="form-group">              <label for="inputPassword3" class="col-sm-2 control-label">Email:</label>              <div class="col-sm-6">                <input id="email" name="email" type="text" class="form-control" placeholder="Please enter user email"/>              </div>              <div id="p4">              </div>            </div>            <div class="form-group">              <label for="inputPassword3" class="col-sm-2 control-label">Tel:</label>              <div class="col-sm-6">                <input id="phone" name="phone" type="text" class="form-control" placeholder="Please enter the user's mobile phone number"/>              </div>              <div id="p5">              </div>            </div>            <div class="form-group">              <div class="col-sm-offset-2 col-sm-8">                <button id="reg" type="submit" class="btn col-lg-9 btn-info">Register</button>              </div>            </div>          </form>        </div>      </div>    </div>    </div>  </body></html>

5.js前端驗證以及Ajax異步交互實現用戶注冊

window.onload = function() {  uname.onfocus = notNull;  uname.onblur = notNull;  upwd.onfocus = notNull;  upwd.onblur = notNull;  upwd1.onfocus = notNull;  upwd1.onblur = notNull;  email.onfocus = notNull;  email.onblur = notNull;  phone.onfocus = notNull;  phone.onblur = notNull;  upwd.onfocus = passw;  upwd.onblur = passw;  upwd1.onfocus = passw;  upwd1.onblur = passw;  //聲明一個全局的xhr  var xhr = new XMLHttpRequest();  var flag = true;  //驗證是否為空并且用戶名是否已經存在  function notNull() {    if(!uname.value) {      p1.innerHTML = '用戶名不能為空';      return;    } else {      p1.innerHTML = '';      getUname();    }    if(!upwd.value) {      p2.innerHTML = '密碼不能為空';      return;    } else {      p2.innerHTML = '';    }    if(!upwd1.value) {      p3.innerHTML = '確認密碼不能為空';      return;    } else {      p3.innerHTML = '';    }    if(!email.value) {      p4.innerHTML = '郵箱不能為空';      return;    } else {      p4.innerHTML = '';    }    if(!phone.value) {      p5.innerHTML = '手機號不能為空';      return;    } else {      p5.innerHTML = '';    }  }  //驗證用戶名是否已存在  function getUname() {    xhr.onreadystatechange = function() {      if(xhr.readyState == 4 && xhr.status == 200) {        var result = xhr.responseText;        console.log(result);        if(result === '1') {          p1.innerHTML = '用戶名已存在';          //如果用戶名已存在,該按鈕處于禁用狀態          reg.setAttribute('disabled','true');        } else {          p1.innerHTML = '';          reg.disabled = false;        }      }    }    var url = "/demo/seleUname?uname=" + uname.value;    xhr.open('get', url, true);    xhr.send(null);  }  //密碼驗證  function passw() {    if(upwd.value != upwd1.value) {      p3.innerHTML = '兩次密碼不一致';    }  }    reg.onclick = function() {    //查詢所有用戶信息    xhr.onreadystatechange = function() {      if(xhr.readyState == 4 && xhr.status == 200) {        var result = xhr.responseText;        console.log(JSON.parse(result));      }    }    var url = "/demo/sele";    xhr.open('get', url, true);    xhr.send(null);    //執行注冊    xhr.onreadystatechange = function() {      if(xhr.readyState == 4 && xhr.status == 200) {        var result = xhr.responseText;        if(flag) {          getUname();          if(result === '1') {            alert('success');            setTimeout(()=>{              location.href = 'http://localhost:8080/login_user.html';            });          } else {            alert('error');          }        }      }    }    var str = "/demo/reg";    xhr.open('post', str, true);    xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');    var formdata = "uname=" + uname.value + "&upwd=" + upwd.value + "&email=" + email.value + "";    xhr.send(formdata);  }}

界面展示:

Nodejs,用戶注冊

總結

以上所述是小編給大家介紹的Nodejs實現用戶注冊功能,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復大家的!


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91精品国产综合久久久久久久久| 精品国产一区二区三区久久久| 91香蕉电影院| 在线观看日韩欧美| 国产综合久久久久| 自拍偷拍免费精品| 日韩av男人的天堂| 亚洲午夜性刺激影院| 欧美性猛交xxxxx免费看| 69国产精品成人在线播放| 亚洲第一天堂av| 国产亚洲精品综合一区91| 欧美另类69精品久久久久9999| 黑人巨大精品欧美一区二区三区| 亚洲嫩模很污视频| 精品久久久久久中文字幕大豆网| 亚洲福利在线观看| 亚洲一区999| 亚洲午夜av电影| 91在线免费看网站| 色偷偷偷综合中文字幕;dd| 欧美日韩国产精品一区| 精品日本美女福利在线观看| 久久久www成人免费精品张筱雨| 国产精品xxxxx| 成人免费福利视频| 2025国产精品视频| 日韩欧美在线国产| 日韩在线视频免费观看| 美女av一区二区三区| 国产精品视频在线播放| 久久理论片午夜琪琪电影网| 亚洲精品丝袜日韩| 亚洲a∨日韩av高清在线观看| 精品国产欧美一区二区三区成人| 中文字幕少妇一区二区三区| 日韩在线观看免费av| 欧美激情精品久久久久久变态| 色多多国产成人永久免费网站| 亚洲丝袜一区在线| 国产精品h片在线播放| 97超级碰碰碰久久久| 亚洲色图美腿丝袜| 日韩成人av在线播放| 亚洲欧美综合图区| 欧美一区二区三区精品电影| 亚洲一区二区免费在线| 欧洲日韩成人av| 欧美日韩视频免费播放| 日韩av影片在线观看| 国产欧美精品一区二区三区-老狼| 久久久久久国产精品久久| 国内伊人久久久久久网站视频| 久久婷婷国产麻豆91天堂| 久久人人爽人人爽人人片av高清| 久久久99免费视频| 成人免费淫片aa视频免费| 在线观看亚洲视频| 国模精品一区二区三区色天香| 亚洲一区二区三区在线视频| 性欧美xxxx交| 亚洲国产精彩中文乱码av在线播放| 日韩av中文字幕在线免费观看| 国产欧美日韩91| www.久久草.com| 色综合久久88| 欧美日韩午夜激情| 91精品国产亚洲| 日韩亚洲精品电影| 日韩电影中文字幕av| 91久久精品久久国产性色也91| 亚洲第一级黄色片| 久久精品91久久香蕉加勒比| 亚洲黄色在线观看| 国产精品18久久久久久麻辣| 亚洲综合中文字幕在线观看| 欧美在线激情网| 51色欧美片视频在线观看| 57pao成人永久免费视频| 国产suv精品一区二区三区88区| 亚洲一区二区免费| 欧美日韩一区二区三区| 欧美中文字幕第一页| 91久久国产婷婷一区二区| 国产精品美乳一区二区免费| 精品呦交小u女在线| 亚洲精品成人久久久| 欧美午夜精品在线| 国产一区二区三区欧美| 国产精品亚洲аv天堂网| 国产午夜精品全部视频播放| 性欧美长视频免费观看不卡| 国产伊人精品在线| 久久精品福利视频| 国产精品免费一区| 美女999久久久精品视频| 久久精品国产欧美亚洲人人爽| 亚洲人成电影在线观看天堂色| 在线观看国产欧美| 亚洲精品福利资源站| 亚洲成人免费在线视频| 欧美成人一二三| 欧美激情一级精品国产| 福利一区视频在线观看| 亚州精品天堂中文字幕| 日韩高清中文字幕| 亚洲视频第一页| 国产精品对白刺激| 亚洲女人被黑人巨大进入| 国产精彩精品视频| 97香蕉超级碰碰久久免费的优势| 亚洲精品自拍第一页| 亚洲欧美成人一区二区在线电影| 国产成人亚洲综合91| 中文字幕亚洲在线| 欧美一区亚洲一区| 亚洲精品国产精品国自产观看浪潮| 久久资源免费视频| 中日韩美女免费视频网站在线观看| 国产精品福利在线观看网址| 亚洲香蕉伊综合在人在线视看| 成人免费大片黄在线播放| 国产va免费精品高清在线观看| 色综合伊人色综合网站| 精品福利免费观看| 日韩成人激情视频| 欧美激情在线狂野欧美精品| 国a精品视频大全| 成人免费网站在线看| 成人网址在线观看| 久久久999国产| 久久久免费观看视频| 在线成人免费网站| 伊人一区二区三区久久精品| 亚洲精品之草原avav久久| 97久久久久久| 欧美激情高清视频| 国产精品电影网站| 欧美激情精品久久久久久黑人| 久久亚洲精品一区二区| 色视频www在线播放国产成人| 日本人成精品视频在线| 欧美一级片久久久久久久| 岛国av一区二区在线在线观看| 中文字幕自拍vr一区二区三区| 国产精品视频中文字幕91| 日韩高清a**址| 国产精品十八以下禁看| 欧美资源在线观看| 亚洲欧美综合精品久久成人| 在线播放日韩欧美| 欧美精品在线视频观看| 亚洲xxx视频| 一本大道久久加勒比香蕉| 亚洲国产91色在线| 久久精品亚洲一区| 久久九九全国免费精品观看| 日韩在线播放av| 中文字幕欧美在线| 国产精品视频在线观看| 欧美激情在线狂野欧美精品| 亚洲在线视频观看| 97视频在线播放| 欧美日韩在线视频观看|