JS:資料庫設計與應用(七)

更新於 發佈於 閱讀時間約 1 分鐘

※ Express串接MySQL相關套件介紹

★ Express 資料庫設定套件,mysqljs和 mysql2比較

相同點:都是讓 Node.js 能使用 MySQL 的套件 (package)。安裝之後我們就能在 Node.js application 裡使用 SQL 指令,操作 SQL 資料庫。

mysqljs:(通常稱為 mysql

  • API:提供基本的回調函數 API。
  • 性能:性能較好,但不如 mysql2
  • 功能支持基本的 MySQL 功能,包括:
  1. 建立連接:可以輕鬆地連接到 MySQL 伺服器。
  2. 執行查詢:可以執行 SQL 查詢,並獲取結果。
  3. 處理錯誤:提供錯誤處理機制。
  4. 連接池:用於管理和重用與資料庫的連接,以提高應用程式的效能和資源利用率。
  5. 事務處理:事務是一組不可分割的操作,用於確保資料庫操作的一致性和可靠性。
npm install mysql
raw-image


mysql2:

  • API:除了回調函數 API 外,還提供了 Promise API,這使得處理異步操作更加方便。
  • 性能:性能更優,因為它是用純 JavaScript 實現的,並且進行了多種優化。
  • 功能:支持預處理語句(prepared statements),這有助於防止 SQL 注入攻擊。還支持非 UTF-8 編碼、二進制日誌協議、壓縮和 SSL 等更多功能。
npm install mysql2


★ 創建連接的connection和createPool比較

connectioncreatePool是Node.js中用來連接MySQL資料庫的兩種不同方法

主要區別如下:

  1. 單一連接 vs 連接池
    • connection:使用createConnection方法來建立一個單一的MySQL連接。每次呼叫createConnection都會建立一個新的連接對象,並且只能由一個客戶端使用。當連接不再需要時,需要手動呼叫end方法來關閉連接。
    • createPool:使用createPool方法來建立一個連接池,連接池中包含多個可重用的連接。連接池允許多個客戶端同時使用連接,提高了並發性能。連接池會自動管理連接的分配和釋放,可以避免頻繁地建立和銷毀連接。
  2. 適用場景
    • connection:適用於簡單的、低並發的應用場景,需要手動管理連接的建立和關閉。
    • createPool:適用於高並發的應用場景,連接池自動管理連接的分配和釋放,提高了並發性能。
  3. 性能
    • connection:每次執行查詢都會建立一個新的連接,這會造成資源的浪費,降低性能。
    • createPool:連接池一次性建立多個連接,根據客戶端的查詢自動分發、重用和管理這些連接,從而提高性能。

★ 五大API串接MySQL基本架構

//新增一個todo
app.post('/', (req, res) => {

})

//取得所有的todo
app.get('/', (req, res) => {

})

//取得某一個todo
app.get('/:id', (req, res) => {

})

//更新某一個todo
app.put('/:id', (req, res) => {

})

//刪除某一個todo
app.delete('/:id', (req, res) => {

})


★ 測試API工具 – REST Client 和 Postman 的比較

Postman

  1. 圖形化介面Postman 提供一個直觀的圖形化介面,方便用戶操作和管理 API 請求。
  2. 功能豐富:支持 API 測試、自動化測試、API 文件生成等多種功能。
  3. 資源消耗:Postman 需要額外的軟體安裝,並且運行時會佔用較多的 RAM。
  4. 付費功能:一些高級功能需要付費才能使用。

REST Client

  1. VS Code 擴展:REST Client 是一個 VS Code 的擴展插件,允許你在 VS Code 中直接發送 HTTP 請求並查看響應結果。
  2. 輕量化:由於它是基於文本格式,所以資源消耗較少,適合 RAM 緊缺的設備。
  3. 版本控制:可以輕鬆地在存儲庫之間進行版本控制,並且可以在團隊間共享 API 調用。
  4. 無圖形介面:REST Client 沒有圖形化介面,所有操作都在 HTTP 文件中進行。

總結

  • 如果你需要一個功能豐富且易於操作的工具,Postman 可能更適合你。
  • 如果你已經在使用 VS Code 並且希望節省資源,REST Client 會是一個不錯的選擇。

★ SQL 資料庫互動工具 – Sequelize和 Sequelize CLI

Sequelize:

基於 Node.js 的 ORM(Object-Relational Mapping)庫,用於與 SQL 資料庫進行互動。

提供了一系列事先設定好的任務腳本,包括自動產生設定檔、載入種子資料、資料庫設定等等。

  • 模型定義可以使用 JavaScript 來定義資料庫中的表格和欄位。
  • 查詢生成:提供簡單的 API 來生成和執行 SQL 查詢。
  • 關聯管理:支援定義表格之間的關聯(如一對一、一對多、多對多)。
  • 資料驗證:內建資料驗證功能,確保資料的完整性。
  • 交易管理:支援資料庫交易,確保資料操作的原子性。
npm install sequelize

Sequelize CLI

Sequelize CLI  是一個命令行工具,專門用來輔助 Sequelize 的開發工作。它提供了一系列事先設定好的任務腳本,這些腳本可以幫助你自動產生設定檔、載入種子資料、進行資料庫設定等等。

  • 初始化專案快速建立 Sequelize 專案結構。
  • 生成模型:自動生成模型檔案。
  • 遷移管理:生成和執行資料庫遷移。
  • 種子資料:生成和執行種子檔案來填充測試資料。
npm install --save-dev sequelize-cli


留言
avatar-img
留言分享你的想法!
avatar-img
奧莉薇走在成為後端工程師之路上
18會員
141內容數
全端網頁開發專業知識分享
2025/04/26
※ 場景: 即時聊天應用: 設計一個支持多房間功能的即時聊天平台,像 WhatsApp、LINE或Facebook Messenger,提供文字、語音、視訊聊天功能,方便管理群組聊天。 功能亮點:加入特別功能,例如可加入多房間功能、使用者名單、表情符號支持、文件分享或訊息已讀未讀狀態。 展示
2025/04/26
※ 場景: 即時聊天應用: 設計一個支持多房間功能的即時聊天平台,像 WhatsApp、LINE或Facebook Messenger,提供文字、語音、視訊聊天功能,方便管理群組聊天。 功能亮點:加入特別功能,例如可加入多房間功能、使用者名單、表情符號支持、文件分享或訊息已讀未讀狀態。 展示
2025/04/26
※ 先建立基本的express後端服務: 1.建立新資料夾:Socket mkdir socket 2.進入資料夾:Socket cd ​bsocket 3. 安裝 Experss 到專案中 npm init -y //初始化專案,建立 package.json 檔 npm insta
Thumbnail
2025/04/26
※ 先建立基本的express後端服務: 1.建立新資料夾:Socket mkdir socket 2.進入資料夾:Socket cd ​bsocket 3. 安裝 Experss 到專案中 npm init -y //初始化專案,建立 package.json 檔 npm insta
Thumbnail
2025/04/10
※ 什麼是 Socket.io:一個基於傳統 WebSocket API 之上的框架。 ※ Socket.io常用功能: Custom Events:在 Socket.io 中,開發者可以創建自己的事件來處理特定的功能或需求。 Rooms:分組的功能。每個連接的用戶(或稱為 socket)可
Thumbnail
2025/04/10
※ 什麼是 Socket.io:一個基於傳統 WebSocket API 之上的框架。 ※ Socket.io常用功能: Custom Events:在 Socket.io 中,開發者可以創建自己的事件來處理特定的功能或需求。 Rooms:分組的功能。每個連接的用戶(或稱為 socket)可
Thumbnail
看更多
你可能也想看
Thumbnail
沙龍一直是創作與交流的重要空間,這次 vocus 全面改版了沙龍介面,就是為了讓好內容被好好看見! 你可以自由編排你的沙龍首頁版位,新版手機介面也讓每位訪客都能更快找到感興趣的內容、成為你的支持者。 改版完成後可以在社群媒體分享新版面,並標記 @vocus.official⁠ ♥️ ⁠
Thumbnail
沙龍一直是創作與交流的重要空間,這次 vocus 全面改版了沙龍介面,就是為了讓好內容被好好看見! 你可以自由編排你的沙龍首頁版位,新版手機介面也讓每位訪客都能更快找到感興趣的內容、成為你的支持者。 改版完成後可以在社群媒體分享新版面,並標記 @vocus.official⁠ ♥️ ⁠
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
全球科技產業的焦點,AKA 全村的希望 NVIDIA,於五月底正式發布了他們在今年 2025 第一季的財報 (輝達內部財務年度為 2026 Q1,實際日曆期間為今年二到四月),交出了打敗了市場預期的成績單。然而,在銷售持續高速成長的同時,川普政府加大對於中國的晶片管制......
Thumbnail
全球科技產業的焦點,AKA 全村的希望 NVIDIA,於五月底正式發布了他們在今年 2025 第一季的財報 (輝達內部財務年度為 2026 Q1,實際日曆期間為今年二到四月),交出了打敗了市場預期的成績單。然而,在銷售持續高速成長的同時,川普政府加大對於中國的晶片管制......
Thumbnail
重點摘要: 6 月繼續維持基準利率不變,強調維持高利率主因為關稅 點陣圖表現略為鷹派,收斂 2026、2027 年降息預期 SEP 連續 2 季下修 GDP、上修通膨預測值 --- 1.繼續維持利率不變,強調需要維持高利率是因為關稅: 聯準會 (Fed) 召開 6 月利率會議
Thumbnail
重點摘要: 6 月繼續維持基準利率不變,強調維持高利率主因為關稅 點陣圖表現略為鷹派,收斂 2026、2027 年降息預期 SEP 連續 2 季下修 GDP、上修通膨預測值 --- 1.繼續維持利率不變,強調需要維持高利率是因為關稅: 聯準會 (Fed) 召開 6 月利率會議
Thumbnail
※ 為什麼選擇SQLite? 安裝簡單:SQLite是一個零配置的資料庫,不需要複雜的設定和安裝過程。。 使用SQL語法。 設計選擇多元性(MySQL / SQLite):適合於小零件資料應用、嵌入式系統、物聯網設備。 ※ SQLite四大優點: 執行檔檔案很小:資料庫系統需要的磁碟空
Thumbnail
※ 為什麼選擇SQLite? 安裝簡單:SQLite是一個零配置的資料庫,不需要複雜的設定和安裝過程。。 使用SQL語法。 設計選擇多元性(MySQL / SQLite):適合於小零件資料應用、嵌入式系統、物聯網設備。 ※ SQLite四大優點: 執行檔檔案很小:資料庫系統需要的磁碟空
Thumbnail
Node.js是一個JavaScript運行環境。它使用了一個非阻塞、事件驅動的I/O模型,使其非常適合用於數據密集型的即時應用程序。簡單來說,Node.js允許你使用JavaScript來編寫伺服器端代碼。 nvm 安裝nvm Windows : 點擊 Releases · coreybut
Thumbnail
Node.js是一個JavaScript運行環境。它使用了一個非阻塞、事件驅動的I/O模型,使其非常適合用於數據密集型的即時應用程序。簡單來說,Node.js允許你使用JavaScript來編寫伺服器端代碼。 nvm 安裝nvm Windows : 點擊 Releases · coreybut
Thumbnail
在 TypeScript 中,套件是模組化代碼的集合,可以提高代碼的可重用性和可維護性。常見的套件包括各種庫和框架,如 lodash、express 等。以下是有關引用套件、自定義套件和常見套件的詳細介紹。
Thumbnail
在 TypeScript 中,套件是模組化代碼的集合,可以提高代碼的可重用性和可維護性。常見的套件包括各種庫和框架,如 lodash、express 等。以下是有關引用套件、自定義套件和常見套件的詳細介紹。
Thumbnail
套件(Package)是將程式或程式庫進行組織、分發和共享的一種方式。在軟體開發中,套件通常包含了相關的程式碼、資源文件和元數據,並提供了統一的名稱空間和版本管理。
Thumbnail
套件(Package)是將程式或程式庫進行組織、分發和共享的一種方式。在軟體開發中,套件通常包含了相關的程式碼、資源文件和元數據,並提供了統一的名稱空間和版本管理。
Thumbnail
軟體系統的發展歷程大多相似,首重解決基本需求、提供操作介面,進而提升安全性、擴充功能、優化操作。
Thumbnail
軟體系統的發展歷程大多相似,首重解決基本需求、提供操作介面,進而提升安全性、擴充功能、優化操作。
Thumbnail
Express 是一個流行的 web 框架,使用 JavsScript 實現,執行在 node 環境上,主要用來寫後端應用。
Thumbnail
Express 是一個流行的 web 框架,使用 JavsScript 實現,執行在 node 環境上,主要用來寫後端應用。
Thumbnail
npm(全名 Node Package Manager,node套件管理器)
Thumbnail
npm(全名 Node Package Manager,node套件管理器)
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News