整理這些技術筆記真的很花時間,如果你願意 關閉 Adblock 支持我,我會把這份感謝轉換成更多「踩坑轉避坑」的內容給你!ヽ(・∀・)ノ
這是在講關於一名叫 Koa 的全端勇士傳說-MySQL篇-sequelize(1)
前言
接下來將會使用 sequelize 這個套件,sequelize 它是一個 ORM,ORM 可以幫助我們解決一些問題,例如 SQL injection 的問題
ORM
想必一定會有人問 ORM 是什麼鬼東西,在前面有講到 ORM 可以幫助我們解決一些問題,例如 SQL injection 的問題,但是其實不只有這個,他還可以減少我們重複程式碼的使用性,進而達到程式碼的簡潔與美麗
ORM 若要解釋起來說真的非常複雜,因為會與後端牽扯比較重,所以這邊引用 阮一峰 的簡單說法就是
ORM 就是通過實例物件的語法,完成關聯性資料庫的操作與技術,就是物件-關聯鏡像(Object/Relational Mapping)的縮寫
起手式
首先我們先來安裝一下 sequelize
1 | |
另外這個 ORM 支援多種資料庫的處理,所以必須另外安裝相關的資料庫
1 | |
那我們這個文章的範例是使用 MySQL 所以完整套件安裝指令是這樣子
1 | |
那麼有可能有人會說為什麼不挑選這一個 orm
其實在最前面這個 node-orm 作者也是推薦我們使用 sequelize 或是 bookshelf,主要原因就是出在這兩個套件在社群上活耀度比較高,當我們出現問題的時候也會比較容易找到相關的解答,所以挑選社群活耀度較高的套件對於我們在開發上也是有一定幫助
那麼廢話就不多說,先來安裝套件再說

使用方式
那麼由於 sequelize 有版本差異,如果你沒有特別挑選版本的話,應該會安裝到 sequelize V5 版,所以我這邊就會直接依照 V5 版的參考文件去做撰寫
首先先開啟 app.js 引入 sequelize 套件
1 | |
接下來我們要針對資料庫做連接,那麼連接語法如下
基本上連接方式有兩種,另一種是比較簡短的傳輸方式,是使用 URL 的,可是我比較喜歡下面這種
1 | |
這邊也附上 URL 傳遞方式
1 | |
那麼我們該如何確定已經連接上了呢?官方有提供一個方法可以讓我們使用也就是 authenticate()
1 | |
另外由於這個方法是 Promise 方法,所以可以使用 .then、.catch
1 | |
所以這時候我們來執行一下 node app.js 看看會得到什麼訊息

那如果資料庫沒有啟用呢?又或者是帳號密碼錯誤呢?


接下後面會講該如何透過 sequelize 使用來查詢、新增、編輯、刪除資料
補充
通常 sequelize 一旦啟用連接之後就會一直保持連接狀態,但是這種狀況是不好的,如果有 100 個人連接之後也不關閉連接,那麼就有可能導致 SQL 負載,所以 sequelize 也有提供一個方式可以關閉連接,也就是 sequelize.close()
1 | |

查看 MySQL 連接數
另外如果想查看目前的 MySQL 訪問數可以這樣子操作,由於我們是使用 XAMPP,所以有另一套進入 MySQL 進入的方式
首先先點擊 Shell

然後輸入以下指令
1 | |
意旨使用密碼登入 root 帳號,當你送出之後會看到這個畫面

那麼你就輸入 root 密碼就可以進入 MySQL 了

看到 MariaDB 不用太擔心,MariaDB 本身也就是 MySQL,接下來就輸入以下指令來查看連接數,但是有兩種指令
- 查看部分連接數量
1 | |
- 查看全部連接數量 (當連接量多時此指令會跑很久)
1 | |

退出 MySQL 方式就輸入 \q 即可
參考文獻
整理這些技術筆記真的很花時間,如果你願意 關閉 Adblock 支持我,我會把這份感謝轉換成更多「踩坑轉避坑」的內容給你!ヽ(・∀・)ノ