node.js(expree.js?)模擬手機驗證碼登錄功能
dbconfig.js
const mysql = require('mysql') module.exports = { // 數(shù)據(jù)庫配置 config: { host: 'localhost', // 連接地址 port: '3306', //端口號 user: 'root', //用戶名 password: 'wei630229', //密碼 database: 'exapp2', //數(shù)據(jù)庫名 }, // 連接數(shù)據(jù)庫,使用mysql的連接池連接方式 // 連接池對象 sqlConnect: function (sql, sqlArr, callBack) { var pool = mysql.createPool(this.config) pool.getConnection((err, conn) => { console.log('12345') if (err) { console.log('連接失敗'); return; } // 事件驅(qū)動回調(diào) conn.query(sql, sqlArr, callBack); //釋放連接 conn.release(); }) } }
var dbCongif = require("../utils/dbconfig"); // 隨機驗證碼 function rand(min, max) { return Math.floor(Math.random() * (max - min)) + min; } // 聲明驗證碼和手機號數(shù)組 ValidatePhoneCode = []; // 判斷該手機是否一定接收過該驗證碼 let sendCodeP = (phone) => { for (var item of ValidatePhoneCode) { console.log("item", item); if (phone == item.phone) { return true; } } return false; }; // let findCodeAndPhone = (phone, code) => { for (var item of ValidatePhoneCode) { if (phone == item.phone && code == item.code) { return "login"; } } return "error"; }; // 驗證碼發(fā)送接口 sendCode = (req, res) => { // 判斷該手機號是否一定接收過驗證碼 let phone = req.query.phone; if (sendCodeP(phone)) { res.send({ code: 400, msg: "已經(jīng)發(fā)送過驗證碼,稍后再發(fā)", }); } let codeMge = rand(1000, 9999); ValidatePhoneCode.push({ phone: phone, code: codeMge, }); res.send({ code: 200, msg: "發(fā)送成功", }); console.log("code", codeMge); }; // 驗證碼登錄 codePhoneLogin = (req, res) => { let { phone, code } = req.query; // 判斷手機號是否發(fā)送過驗證碼 if (sendCodeP(phone)) { // 驗證碼和手機號是否匹配 let state = findCodeAndPhone(phone, code); if (state == "login") { // 登錄成功 res.send({ code: "200", mgs: "登錄成功", }); } else if (state == "error") { res.send({ code: "500", mgs: "登錄失敗", }); } } else { res.send({ code: "400", mgs: "未發(fā)送驗證碼", }); } }; module.exports = { sendCode, // 驗證碼接口 codePhoneLogin, // 登錄接口 };
測試驗證碼發(fā)送
測試登錄
到此這篇關(guān)于node.js(expree.js )模擬手機驗證碼登錄功能的文章就介紹到這了,更多相關(guān)node.js驗證碼登錄內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
NodeJS服務(wù)器實現(xiàn)gzip壓縮的示例代碼
這篇文章主要介紹了NodeJS服務(wù)器實現(xiàn)gzip壓縮的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-10-10用Electron寫個帶界面的nodejs爬蟲的實現(xiàn)方法
這篇文章主要介紹了用Electron寫個帶界面的nodejs爬蟲的實現(xiàn)方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-01-01Nodejs + Websocket 指定發(fā)送及群聊的實現(xiàn)
這篇文章主要介紹了Nodejs + Websocket 指定發(fā)送及群聊的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01Node.js的HTTP模塊、URL模塊與supervisor工具介紹
這篇文章介紹了Node.js的HTTP模塊、URL模塊與supervisor工具,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-06-06Node.js成為Web應(yīng)用開發(fā)最佳選擇的原因
本篇文章給大家詳細(xì)分析了Node.js 成為 Web 應(yīng)用開發(fā)最佳選擇的十個原因,對此有需要的朋友參考下。2018-02-02Nodejs訪問網(wǎng)絡(luò)并解析返回的json的實現(xiàn)方法
本文主要介紹了Nodejs訪問網(wǎng)絡(luò)并解析返回的json的實現(xiàn)方法,文中根據(jù)實例編碼詳細(xì)介紹的十分詳盡,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-03-03NestJS核心概念之Middleware中間件創(chuàng)建使用示例
這篇文章主要為大家介紹了NestJS核心概念之Middleware中間件創(chuàng)建使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08