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