--- tag: nodejs, backend, 隨手筆記 --- # 隨手筆記 - 建立一個 NodeJS 的 Express 後端專案 ## 撰文動機 這篇文是為了之後可以有一個統一的 NodeJS 模板作為參考。 ## 步驟 ### 1. 建立資料夾 這點應該不用特別說,以專案名稱建立資料夾(我的習慣是 kebab-case)。 ### 2. 初始化 TypeScript 並建立 index.ts 全域安裝 TypeScript 並且執行初始化 ```shell!= sudo npm i typescipt -g tsc --init touch index.ts ``` ### 3. 初始化 npm + 安裝套件 執行以下指令並且安裝 ts 版本(即 @type/xxx 沒安裝 ts 版會出錯) 函式庫清單: express: 後端框架 cors: 跨源政策設定函式庫 dotenv: 讀取環境變數函式庫 jsonwebtoken: jwt 函式庫 axios: 處理 http 請求函式庫 typeorm: 資料庫操作函式庫 reflect-metadata: typeorm 建立 sql 語句函式庫 mysql2: mysql 驅動 ```shell!= npm init npm i express cors dotenv jsonwebtoken axios typeorm reflect-metadata mysql2 class-validator npm i @types/express @types/cors @types/jsonwebtoken @types/node --save-dev ``` ### 4. 建立 src 底下其他資料夾 * 必要 controller: 如其名不需多解釋 middleware: 中介層 types: 各種 Class 及 Interface 定義於此 helper: 各式輔助函式及 config.ts * 可選 router or routes: 路由資料夾 axios: 呼叫外部 API 所需套件 ### 5. 設定方便的偵錯環境 全域安裝 nodemon 並且修改 package.json ```shell!= sudo npm i nodemon -g ``` ```javascript!= "scripts": { "dev": "nodemon", // for express dev environment // "dev": "DEBUG=express:* nodemon", }, ``` ### 6. Git 初始化 ```shell!= git init git add . git commit -m 'first commit' git remote add '<git repo url>' git push origin master // git push origin main ``` ### Other. MySQL 連線問題 MySQL 8.0 以後採用的驗證方式沒有被 nodejs 的 mysql 模組支援,所以在本文採用的是新的 mysql2 模組,只要 import mysql2,並且在 typeorm 的連接設定的地方加上 driver: mysql2 就好。
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up