Node.js 筆記(二)Sequelize (ORM Framework)

今天要跟大家介紹如何在Node.js中使用ORM,我們要介紹的是Sequelize
我們先來看一下Sequelize官網中是怎麼介紹自己的。

Sequelize is a promise-based Node.js ORM for Postgres, MySQL, MariaDB, SQLite and Microsoft SQL Server. It features solid transaction support, relations, eager and lazy loading, read replication and more.

簡單翻譯一下就是,他支援多種關連式資料庫,具有事務支持…等相關功能。

補充說明:

ORM (Object Relational Mapping),是一種程式設計技術,用於實現物件導向程式語言裡不同類型系統的資料之間的轉換。

Quick Start

我們會延續上一篇Node.js 筆記(一)介紹與安裝,繼續我們的內容喔!
這次我分為下面幾個部分進行講解:

  • 初始化作業
  • Sequelize實作
  • 驗證

初始化作業

我們這邊先準備一個database的資料,內容如下:

Sequelize實作

  • 使用npm安裝Sequelize

    1
    2
    3
    4
    5
    $ npm install --save sequelize
    + sequelize@5.21.10
    added 20 packages from 92 contributors and audited 140 packages in 5.414s
    found 1 low severity vulnerability
    run `npm audit fix` to fix them, or `npm audit` for details
  • 使用npm安裝mysql2

    1
    2
    3
    4
    5
    $ npm install --save mysql2 
    + mysql2@2.1.0
    added 18 packages from 20 contributors and audited 158 packages in 1.364s
    found 1 low severity vulnerability
    run `npm audit fix` to fix them, or `npm audit` for details

這邊大家記得是在專案的資料夾下輸入指令喔!

  • 確實安裝成功,大家可以在package.json的檔案中看到mysql2sequelize
  • 建立 models資料夾,新增兩個js檔案,分別為db.jsADM_USER.js

    這邊需要特別注意的是在db.js的連線資訊中,需要添加下面這段資訊。
    不然會出現Sequelize Unknown column '*.createdAt' in 'field list'?錯誤。

    1
    2
    3
    define: {
    "timestamps": false
    }
  • user.js增加一個新的controller,撈取DB並給前端NICK_NAME欄位名稱。

  • views資料夾中,新增一個users.pug檔案,顯示name

到這邊就完成了,接下來進入驗證。

驗證

http://localhost:3000/users/greddy

今天我們就到這邊吧!接下來還有許多問題等待解決,如:

如果有問題,請再寄信給我喔!

謝謝您的支持與鼓勵

Ads