iT邦幫忙

2023 iThome 鐵人賽

DAY 15
0
自我挑戰組

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

Day 15 - 資料庫:使用 ORM (物件-關係映射)簡化資料庫操作(中)

  • 分享至 

  • xImage
  •  

鐵人賽已經過一半了~ 大家加油不要放棄!/images/emoticon/emoticon69.gif

今天會來介紹一下 Express 框架的 ORM - Sequelize,我們就繼續看下去吧~ !

首先,先來介紹一下 Sequelize。

什麼是 Sequelize

依照 Sequelize 的官網描述:

Sequelize is a modern TypeScript and Node.js ORM for Oracle, Postgres, MySQL, MariaDB, SQLite and SQL Server, and more. Featuring solid transaction support, relations, eager and lazy loading, read replication and more.

我們昨天提到,ORM 支援使用多種數據庫,使用 Sequelize 的話,可以支持連接 Oracle、Postgres、MySQL、MariaDB、SQLite 和 SQL Server 等數據庫,還提供提供穩固的事務支持、關聯、延遲加載、讀取複製等功能。


實作 Sequelize

  • 安裝 Sequelize

    首先打開我們的 ironman 專案,在終端機下 npm install sequelize 完成我們套件的安裝。

    https://ithelp.ithome.com.tw/upload/images/20230910/20162304QNTw1NkGmg.png

  • 連接資料庫

    • 再來先建立一個 models 的資料夾,建立 sequelize 的 Model 模型。

    • 建立 index.js 來引入 sequelize 套件,並使用物件導向概念來連線資料庫

          const { Sequelize } = require('sequelize')
      
          const sequelize = new Sequelize('${database}', '${username}', '${password}', {
              host: 'localhost',
              dialect: /* one of 'mysql' | 'postgres' | 'sqlite' | 'mariadb' | 'mssql' | 'db2' | 'snowflake' | 'oracle' */
          })
      
    • 使用我們先前連線 MySQL 的連線帳號密碼的話,就是

          // models\index.js
      
          const { Sequelize } = require('sequelize')
      
          const sequelize = new Sequelize('book', 'root', '${password}', {
              host: 'localhost',
              dialect: 'mysql'
          })
      
  • 測試連線

    • Sequelize 有提供一個 .authenticate() 函式可以測試連線是否成功。

    • 所以可以在原本連線的檔案底下加上測試的 function。

          // models\index.js
      
          async function testConnection() {
              try {
              await sequelize.authenticate();
              console.log('Connection has been established successfully.');
            } catch (error) {
              console.error('Unable to connect to the database:', error);
            }
          }
      
          testConnection()
      
    • 在終端機下 cd models 指令,將位置移到 models 資料夾。

    • 下 node index.js 指令,來確認測試的連線是否成功。

      如果成功的話會印出我們 console.log 寫的 Connection has been established successfully. 。就表示我們連線成功啦~

      https://ithelp.ithome.com.tw/upload/images/20230910/20162304Rymdypdr6F.png

以上就完成的初步的連線,明天我們繼續吧!大家掰掰~

參考資料:


上一篇
Day 14 - 資料庫:使用 ORM (物件-關係映射)簡化資料庫操作(上)
下一篇
Day 16 - 資料庫:使用 ORM (物件-關係映射)簡化資料庫操作(下)
系列文
30 天架設 Node.js - Express 框架:快速學習之路30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言