使用Node.JS實現注冊和登錄功能(筆記)


server.js 頁面代碼

 

// 引入需要的依賴
const express=require('express');    //框架名
const cookieParser=require('cookie-parser');      //
const cookieSession=require('cookie-session');
const bodyParser=require('body-parser');    //獲取post請求數據

//獲取post數據配置
var server=express();
server.use(bodyParser.urlencoded({extended:false}))
server.use(bodyParser.json())
//設置跨域訪問
server.all("*",function(req,res,next){
  //設置允許跨域的域名,*代表允許任意域名跨域
  res.header("Access-Control-Allow-Origin","*");
  //允許的header類型
  res.header("Access-Control-Allow-Headers","content-type");
  //跨域允許的請求方式 
  res.header("Access-Control-Allow-Methods","DELETE,PUT,POST,GET,OPTIONS");
  if (req.method.toLowerCase() == 'options'){
    // res.send(200);  //讓options嘗試請求快速結束
    res.sendStatus(200)
  }else{
    next();
  }
})
server.listen(9111);
// cookie session
(function(){
  server.use(cookieParser());
  server.use(cookieSession({
    name:"sess_id",
    keys:["232342342342","12312313213","sdfsaf23r34r3f","123124134dasda"],
    maxAge:20*60*1000
  }))
})();
// route   小型的express   路由
server.use('/aaa/',require('./route/ceshi')());    //測試
server.use('/admin/',require('./route/admin')());

 

注冊登錄接口代碼

 

// 引入依賴
const express = require('express');   
const mysql = require('mysql');
const crypto = require('crypto');  //加載crypto庫
const setPassword = require('../libs/setPassword')    //字符串轉換MD5函數
//連接數據庫
var connection = mysql.createConnection({
  host: 'localhost',
  user: 'root',
  password: '123456',
  database: 'boke'
});
connection.connect();
module.exports = function () {
  var route = express.Router();
  route.post('/reg', function (req, res) {
    let username = req.body.username;   //用戶名
    let password = setPassword(req.body.password, crypto);   //密碼
    connection.query(`SELECT * FROM admin WHERE username='${username}'`, function (err, data) {
      if (err) {
        res.send(err).end();
      } else {
        if (data.length == 0) {
          let sqltext = `INSERT INTO admin (username,password) VALUES('${username}','${password}')`;
          connection.query(sqltext, function (err, data) {
            if (err) {
              res.send(err).end()
            } else {
              res.send({ code: 200, msg: "注冊成功!" }).end();
            }
          })
        } else {
          res.send({ code: 500, msg: "用戶名已存在,請重新注冊!" }).end();
        }
      }
    })
  })
  route.post('/login', function (req, res) {
    let username = req.body.username;   //用戶名
    let password = setPassword(req.body.password, crypto);   //密碼
    connection.query(`SELECT * FROM admin WHERE username='${username}'`, function (err, data) {
      if (err) {
        res.send(err).end();
      } else {
        if (data.length > 0) {
          if (data[0].password === password) {
            res.send({ code: 200, data: data[0] }).end();
          } else {
            res.send({ code: 500, msg: "用戶名或密碼錯誤" }).end();
          }
        } else {
          res.send({ code: 500, msg: "用戶名或密碼錯誤" }).end();
        }
      }
    })
  })
  return route
}

 setPassword 函數

 

function setPassword(pwd,crypto){
  let password=`${pwd}guoyakun`
  const md5 = crypto.createHash('md5');
  md5.update(password);
  var newpwd=md5.digest('hex');
  return newpwd
}
module.exports=setPassword

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM