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
vocus|新世代的創作平台


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
奧莉薇走在成為後端工程師之路上
27會員
171內容數
全端網頁開發專業知識分享
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
Express 是一個流行的 web 框架,使用 JavsScript 實現,執行在 node 環境上,主要用來寫後端應用。
Thumbnail
Express 是一個流行的 web 框架,使用 JavsScript 實現,執行在 node 環境上,主要用來寫後端應用。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
《轉轉生》(Re:INCARNATION)為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,結合拉各斯街頭節奏、Afrobeat/Afrobeats、以及約魯巴宇宙觀的非線性時間,建構出關於輪迴的「誕生—死亡—重生」儀式結構。本文將從約魯巴哲學概念出發,解析其去殖民的身體政治。
Thumbnail
《轉轉生》(Re:INCARNATION)為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,結合拉各斯街頭節奏、Afrobeat/Afrobeats、以及約魯巴宇宙觀的非線性時間,建構出關於輪迴的「誕生—死亡—重生」儀式結構。本文將從約魯巴哲學概念出發,解析其去殖民的身體政治。
Thumbnail
軟體系統的發展歷程大多相似,首重解決基本需求、提供操作介面,進而提升安全性、擴充功能、優化操作。
Thumbnail
軟體系統的發展歷程大多相似,首重解決基本需求、提供操作介面,進而提升安全性、擴充功能、優化操作。
Thumbnail
套件(Package)是將程式或程式庫進行組織、分發和共享的一種方式。在軟體開發中,套件通常包含了相關的程式碼、資源文件和元數據,並提供了統一的名稱空間和版本管理。
Thumbnail
套件(Package)是將程式或程式庫進行組織、分發和共享的一種方式。在軟體開發中,套件通常包含了相關的程式碼、資源文件和元數據,並提供了統一的名稱空間和版本管理。
Thumbnail
※ 為什麼選擇SQLite? 安裝簡單:SQLite是一個零配置的資料庫,不需要複雜的設定和安裝過程。。 使用SQL語法。 設計選擇多元性(MySQL / SQLite):適合於小零件資料應用、嵌入式系統、物聯網設備。 ※ SQLite四大優點: 執行檔檔案很小:資料庫系統需要的磁碟空
Thumbnail
※ 為什麼選擇SQLite? 安裝簡單:SQLite是一個零配置的資料庫,不需要複雜的設定和安裝過程。。 使用SQL語法。 設計選擇多元性(MySQL / SQLite):適合於小零件資料應用、嵌入式系統、物聯網設備。 ※ SQLite四大優點: 執行檔檔案很小:資料庫系統需要的磁碟空
Thumbnail
在 TypeScript 中,套件是模組化代碼的集合,可以提高代碼的可重用性和可維護性。常見的套件包括各種庫和框架,如 lodash、express 等。以下是有關引用套件、自定義套件和常見套件的詳細介紹。
Thumbnail
在 TypeScript 中,套件是模組化代碼的集合,可以提高代碼的可重用性和可維護性。常見的套件包括各種庫和框架,如 lodash、express 等。以下是有關引用套件、自定義套件和常見套件的詳細介紹。
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
npm(全名 Node Package Manager,node套件管理器)
Thumbnail
npm(全名 Node Package Manager,node套件管理器)
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News