iT邦幫忙

2023 iThome 鐵人賽

DAY 10
0
自我挑戰組

30 天架設 Node.js - Express 框架:快速學習之路系列 第 10

Day 10 - 連接資料庫:使用 MySQL 資料庫進行連接(下)

  • 分享至 

  • xImage
  •  

昨天已經安裝了我們要連接的資料庫,今天我們要來用程式進行連線啦~

MySQL 建立資料庫

在程式連線之前,我們先開啟昨天的 TablePlus ,
按一下上方有個資料庫的圖案,來建立新的資料庫 book

https://ithelp.ithome.com.tw/upload/images/20230904/201623042Mf9eYfM71.png

https://ithelp.ithome.com.tw/upload/images/20230904/20162304Pga4WlOBlO.png

MySQL 建立資料表

接著,點選上方 SQL 輸入以下 SQL 指令,創建一個測試的資料表。

https://ithelp.ithome.com.tw/upload/images/20230911/20162304YOAxrhgw7c.png

    CREATE TABLE `booktest` (
          `id` int NOT NULL AUTO_INCREMENT,
          `bookName` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL,
          `createdAt` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
          `updatedAt` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ,
          PRIMARY KEY (`id`)
        ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci

最後,再隨意建立一個測試資料,基本的創建就完成了。

    INSERT INTO `booktest` (`bookName`) VALUES
    ('testBook')

接著我們終於要開 Express 與資料庫連線了,我們繼續看下去~!

Express 連接資料庫

  1. 首先,先在終端機下 npm install mysql2 的指令下載 MySQL 的套件。

https://ithelp.ithome.com.tw/upload/images/20230904/20162304aroy1uDKpH.png

  1. 創立一個 config 的資料夾,再新增一個 mysqlConnection.js 檔案,
    負責設定如何資料庫連線。

  2. mysqlConnection.js 檔案,設定資料庫的帳密來建立連線。

    
        // 引入 mysql2/promise 模組
        const mysql = require('mysql2/promise')
    
        async function mysqlConnection() {
          try {
            // 建立與數據庫的連接
            const connection = await mysql.createConnection({
              host: 'localhost',
              port: 3306,
              user: 'root',
              database: 'book',
              password: '${密碼}'
            })
    
            // 關閉連接
            connection.end()
    
          } catch (error) {
            console.error('連接數據庫時出現錯誤:', error)
          }
        }
    

    可以對照當時在 TablePlus 連線時的設定。

    https://ithelp.ithome.com.tw/upload/images/20230904/20162304uBICa9Bbyh.png

  3. 在連線底下寫一個簡單的 SQL,來測試看看有沒有連線正常。

    
        // 引入 mysql2/promise 模組
        const mysql = require('mysql2/promise')
    
        async function mysqlConnection() {
          try {
            // 建立與數據庫的連接
            const connection = await mysql.createConnection({
              host: 'localhost',
              port: 3306,
              user: 'root',
              database: 'book',
              password: '${密碼}'
            })
    
            // 執行 SQL 查詢
            const [rows, fields] = await connection.query('SELECT * FROM `booktest`')
    
            console.log(rows) // 在這裡處理查詢結果
    
            // 關閉連接
            connection.end()
    
          } catch (error) {
            console.error('連接數據庫時出現錯誤:', error)
          }
        }
    
  4. 現在來測試一下吧~

    1. 先在終端機下 cd configconfig 的資料夾底下。

    https://ithelp.ithome.com.tw/upload/images/20230904/20162304DnrwTEOK3S.png

    1. node mysqlConnection.js 指令,測試看看有沒有跑出在 booktest 資料表新增的資料,
      如果有就表示連線成功了哦~
      (如果跑出 undefined 的話,需要回去程式檢查一下是哪一個連線設定沒有設定好。)

    https://ithelp.ithome.com.tw/upload/images/20230904/20162304FNK3XWyQVF.png

以上資料庫連線的設定就完成啦~
明天會與大家聊聊如何與資料庫進行 新增/刪除/修改 等部分!

參考資料:


上一篇
Day 9 - 連接資料庫:使用 MySQL 資料庫進行連接(上)
下一篇
Day 11 - 資料庫:創建、讀取、更新和刪除資料(上)
系列文
30 天架設 Node.js - Express 框架:快速學習之路30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言