接下來創建一個表 表名 users ,字段是5個

表結構如下 id設為索引並勾選自增 其他字段都為文本類型

之后保存 用戶表已經有了 用戶的姓名 郵箱 密碼 和創建時間

接下來就用nodejs連接數據庫並實現用戶的注冊和登錄
新建server.js文件 安裝express 並編寫代碼

我這里已經安裝過nodemon 所以用nodemon運行server.js


接口已經跑起來了 接下來就是連接數據庫
使用sequelize連接mysql數據庫 sequelize文檔地址
使用sequelize的好處是不需要再使用sql語句,查數據庫的操作和操作對象是相似的,把數據庫映射成對象,對對象進行操作
在項目中安裝sequelize模塊 這個模塊是將關系型數據庫的sql轉化成可操作的對象 還需要安裝mysql和mysql2

已經安裝好了 接下來連接數據庫
在項目文件夾下新建文件夾database 在database文件夾下新建db.js 並在db.js里引入sequelize

接着寫連接數據庫的配置信息 這個文件需要導出供其他文件使用

按照文檔里的配置 實例化里傳數據庫名稱node_sql 數據庫的用戶名root 密碼root 主機是localhost 數據庫類型是mysql pool是連接池信息 設置最大連接5個,連接了5個以上就需要等待,最小是0, 后兩個參數看文檔寫 附上文檔關於連接池的配置截圖
在項目文件夾下新建文件夾models 在models文件夾下新建Users.js文件
導入db和Sequelize 使用define建模 users表 字段和數據庫里的字段一一對應

給這些字段加上類型

和數據庫中的字段類型也是一致的

導出並在外邊的server.js里使用

訪問127.0.0.1:5000/api/v1的時候就會執行Users.js文件 在Users.js里找對應的路由

接口正常的。接下來寫注冊接口

注冊接口使用post的方式來接收參數 所以要先配置post數據解析 這里在server.js里使用express.json()來處理

可以看到拿到了傳來的數據
繼續寫

拿到數據后就要存到數據庫里了 在存數據庫之前先查一下是否存在

測試一下

看到有報錯了 不知道的字段 createdAt

控制台里也有信息

createdAt 和 updatedAt 這兩個字段是模型自己加上去的,需要處理掉,在Users.js模型文件里加上

接下來再試一下

現在返回的是注冊了,數據庫里也有了一條數據

接下來對密碼進行加密 安裝bcryptjs

引入bcryptjs

之后改造接口

再來注冊一下 這一次換了郵箱

數據庫里第二條數據的密碼是加密后的了

用相同的郵箱再次注冊就會提示用戶已存在

接下來寫登錄功能 在Users.js里增加登錄的路由

現在來試一下登錄

密碼錯誤 這是因為使用的是第一個郵箱 而第一個郵箱在注冊時接口里的密碼還未加密 現在的登錄接口是使用加密后的密碼做比較的 所以密碼就對不上了 接下來使用第二個郵箱登錄看看

這就能登錄上了 接下來要做的是在登錄成功后返回token信息 token里包含一些對應的內容
已經安裝好了 引入jsonwebtoken

在登錄接口里 登錄成功后返回一個token


登錄成功並返回token了

拿到token之后可以解析token 看內容 這里我隨便找了個解析jwt的網站看一下

可以看到token是包含用戶信息的,有創建時間,也有過期時間,經過前端處理后就能拿到用戶信息
這樣解析到的數據就沒有密碼這個字段了

至此,nodejs使用sequelize操作數據庫實現用戶注冊登錄已經完成了
對應鏈接:
