iT邦幫忙

2023 iThome 鐵人賽

DAY 17
1

經過前幾天的介紹,我們已經更熟悉使用 Express 框架,
接下來我們需要實作才能學以致用,

今天會先介紹我在開發時常用的 Express 套件,
幫助大家在開發上可以更有效率!


Nodemon

  • 自動重啟程式

    當我們在調整程式的時候,都需要先在終端機按 control+c 先將專案的程式停止,
    修改完成後再使用 node app.js 指令將程式啟動,在開發效率會受到影響。
    所以推薦使用 Nodemon ,只要你按儲存就會自動幫你重新啟動伺服器。

  • 安裝套件

    • 在終端機下 npm install nodemon 安裝 Nodemon 套件。
  • 使用方式

    • 打開我們的 package.json 檔案,可以看到有一個下 scripts 腳本的位置**。**

    • 寫上我們的腳本指令,可以參考我使用的指令。

          "scripts": {
              "start": "nodemon app.js"
            },
      
    • 在終端機下 npm run start ,他就會跑我們剛剛設定的腳本。

    https://ithelp.ithome.com.tw/upload/images/20230912/20162304pjVU9wuW88.png

    • 現在我們可以試著調整程式,再按 ctrl+s 儲存,可以發現 Nodemon 自動幫我們重啟了!
    • 當要結束這個專案程式的時候,也是像之前一樣在終端機下control+c 將專案的程式停止。

dotenv

  • 管理環境變數的套件

    我們在進行資料庫連線的時候,不是都會需要打上我們的帳號與密碼,
    但如果就這樣直接打在程式上 push 到 github 的話,等於將你的帳密公開給讓大家知道了!這不是超危險的嗎?
    所以我們需要建立一個環境變數,管理我們這些敏感的資料。

  • 安裝套件

    • 在終端機下 npm install dotenv 安裝 dotenv 套件。
  • 使用方式

    • 在 config 資料夾底下新增一個名為 env 的資料夾。

    • 在 env 的資料夾 底下新增一個 local.env 的檔案。

      https://ithelp.ithome.com.tw/upload/images/20230912/20162304MJMpLyIMux.png

    • 在 local.env 檔案寫下我們連接資料庫的敏感資訊。

          // local.env
      
          MYSQL_HOSTNAME=
          MYSQL_USERNAME=
          MYSQL_PASSWORD=
      
    • 調整我們連接 MySQL 資料庫的 config/mysqlConnection.jsmodels/index.js 檔案。

          // config/mysqlConnection.js -> 直接與 MySQL 連線
      
          const connection = await mysql.createConnection({
                host: process.env.MYSQL_HOSTNAME,
                port: 3306,
                user: process.env.MYSQL_USERNAME,
                database: 'book',
                password: process.env.MYSQL_PASSWORD
      
          // models/index.js -> 使用 sequelize 與 MySQL 連線
      
          const sequelize = new Sequelize('book', process.env.MYSQL_USERNAME, process.env.MYSQL_PASSWORD, {
              host: process.env.MYSQL_HOSTNAME,
              dialect: 'mysql'
          })
      
    • 調整一下 npm run start 的腳本,引入我們的環境變數檔案。

          "scripts": {
              "start": "NODE_ENV=local nodemon app.js"
            },
      

      https://ithelp.ithome.com.tw/upload/images/20230912/20162304qJyJsVN97F.png

    • app.js 加上引入 dotenv 套件的載入。

        require('dotenv').config({ path: './config/env/local.env' })
    
    • 測試看看是不是可以正常連線,如果沒問題的話就表示使用我們 dotenv 套件成功了哦!
    • 注意:記得要新增一個 .gitignore 檔案,把我們的 *.env 加上,這樣當我們 push 到 github 的時候,才不會連 .env 相關檔案都 push 上去!

express-session

  • 保存使用者狀態

    因為瀏覽器不會記住登入的使用者是誰(stateless 的特性),所以我們需要設定 session 來記住登入的使用者狀態。
    其實記住使用者不只有使用 session ,因為後面會用 session 實作註冊 / 登入,所以就特別提出來介紹一下。

  • 安裝套件

    • 在終端機下 npm install express-session 安裝 express-session 套件。
  • 使用方式

    • 在後面實作註冊 / 登入的時候會詳細說明。

今天先介紹三個常用的套件,明天還會繼續介紹!
那我們明天見~

參考資料:


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

尚未有邦友留言

立即登入留言