日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

Node.js+express+MySQL仿美团注册登录绑定第三方登录

發布時間:2024/1/8 数据库 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Node.js+express+MySQL仿美团注册登录绑定第三方登录 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原文連接

準備

在開始做這個前,希望你已經配置好的Node,express和MySQL的開發環境。也可以參考參考文章

開發環境的配置

  • 新建項目
    參考Mac下express的安裝和新建項目
  • mysql模塊
    在package.json文件的dependencies下加入下面的代碼"mysql": "latest",
    最終的效果:

    然后cd到項目所在的目錄,在終端中執行npm install,項目就會配置mysql模塊。
  • 新建數據庫配置文件
    在項目目錄下新建一個db目錄,在目錄項新建兩個文件DBConfig.js和usersql.js
    效果如下:

    其中的DBConfig.js是數據庫的配置文件,只要代碼如下:
module.exports = { mysql: { user: 'root',password: '123456',database: 'userinfo'} };

就是數據庫的用戶名,密碼和數據庫名。如果你的數據庫和代碼不再一個電腦就需要數據庫的地址。
usersql.js就是實現后臺業務所需要的mysql的操作語句

var UserSQL = { insert:'INSERT INTO user(username,password,date,type,openid) VALUES(?,?,?,?,?)', bangding:'UPDATE user SET type = ?,openid = ? WHERE username = ? AND password = ? ',queryAll:'SELECT * FROM user', getUserByOpenid:'SELECT * FROM user WHERE openid = ? ', getUserByInfo:'SELECT * FROM user WHERE username = ? AND password = ? ',deleteUserByInfo:'DELETE FROM user WHERE username = ? AND password = ? ', }; module.exports = UserSQL;

實現后臺業務

  • 業務流程
    在實現業務之前還是先看看流程,我在用了美團app后自己畫了一個美團登錄和綁定第三方的簡單流程。其中注冊流程也簡化了。

    關于注冊我也簡化了,就是輸入賬號和密碼就可以注冊。
  • 代碼實現
    我的具體業務是寫在users.js
    前提是已經建立了對應的數據庫和表。
    首先要引入mysql依賴
// 導入MySQL模塊 var dbConfig = require('../db/DBConfig'); var User = require('../db/usersql');var mysql = require('mysql'); // 引入mysql依賴 var client = mysql.createConnection(dbConfig.mysql); // 建立連接
  • 首先看看注冊流程:
    1.用戶輸入用戶名和密碼,點擊注冊按鈕,發送注冊請求;
    2.后臺根據用戶提交的用戶名和密碼去數據區查找有沒有對應的用戶,
  • 沒有,注冊成功,把新用戶插入數據庫 同時記錄注冊時間
  • 有,注冊失敗,用戶已經存在
// 注冊接口 router.all('/user/register', function(req, res, next){if (req.method == "POST") {var param = req.body;} else{var param = req.query || req.params; }client.query(User.getUserByInfo,[param.username,param.password],function (err, results){if (err){throw err}else{// 數據庫不存在 就注冊成功if (results.length == 0) {// 把新用戶插入數據庫client.query(User.insert,[param.username,param.password,getDataStr(),'',''],function (err, results) {if(err){throw err}else{res.end(JSON.stringify({status:'100',msg:'注冊成功!'}));}})} else{ // 數據庫存在就注冊失敗res.end(JSON.stringify({status:'101',msg:'該用戶名已經被注冊'})); }}}) });
  • 登錄流程
    登錄就是更具用戶提交過來的用戶名和密碼去數據區比較,用戶名和密碼都相同就登錄,否則就提示用戶名或密碼錯誤。
    當然這是簡單的,還要做的就是是否存在這個用戶。
// 登錄接口 router.all('/user/login', function(req, res, next){if (req.method == "POST") {var param = req.body;} else{var param = req.query || req.params; } client.query(User.getUserByInfo,[param.username,param.password],function (err, results){if (err){throw err}else{// 數據庫存在 if (results.length == 0) {res.end(JSON.stringify({status:'102',msg:'用戶名或密碼錯誤'}));} else{ if (results[0].username == param.username && results[0].password == param.password) {res.end(JSON.stringify({status:'100',msg:'登錄成功'}));}}}}) });
  • 第三方登錄
    第三方登錄有這么兩步:
    根據用戶的第三方用戶唯一標識,這里統稱openid去數據庫查找
  • 數據庫的某個用戶的openid和這個相等就返回注冊成功
  • 數據庫沒有就,跳轉到綁定頁面,做綁定用戶名的操作
    這里,為了前臺能夠判斷用戶是否綁定了,我給了一個flag字段。
// 第三方登陸接口 router.all('/user/thirdlogin', function(req, res, next){if (req.method == "POST") {var param = req.body;} else{var param = req.query || req.params; } console.log(param.openid);client.query(User.getUserByOpenid,[param.openid],function (err, results){if (err){throw err}else{// 數據庫不存在 就跳轉綁定 flag=1 需要綁定 flag=2 // 不需要綁定if (results.length == 0) {res.end(JSON.stringify({status:'100',msg:'操作成功',flag:'1'}));} else{ // 數據庫存在就登錄成功res.end(JSON.stringify({status:'100',msg:'登錄成功',flag:'2'}));}}}) });
  • 綁定用戶
    這個就沒什么了。就是更新用戶的數據
// 綁定接口 router.all('/user/bangding', function(req, res, next){if (req.method == "POST") {var param = req.body;} else{var param = req.query || req.params; }client.query(User.getUserByInfo,[param.username,param.password],function (err, results){if (err){throw err}else{// 更新用戶信息client.query(User.bangding,[param.type,param.openid,param.username,param.password],function (err, results) {if(err){throw err}else{res.end(JSON.stringify({status:'100',msg:'綁定成功!'}));}})}}) });

測試

以上的流程基本是最簡單的了。
測試可以在瀏覽器測試,根據接口輸入對應的參數即可。我是自己寫了一個簡單的測試app。
我是事先在數據庫插入了一些數據。
app效果:

總結

以前一直都是寫iOS的app或是H5的app。這次自己獨自寫前后臺。算是一下小小的突破。
前后臺一起寫的時候,發現前后臺,需要很多的配合。以前只是接口不對了就找后臺修改。這次就是自己修改了。
這需要很多的配合。就像月初做那個物流管理的app。后臺人員我就不吐槽了。我都想找他把數據庫的地址用戶名和密碼
要過來,我自己寫后臺算了。
要學習的還有很多,遇見問題不要怕,仔細的看報錯信息,自己先靜下心來思考,看文檔。不懂再上網搜索。

總結

以上是生活随笔為你收集整理的Node.js+express+MySQL仿美团注册登录绑定第三方登录的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。