專案初始化小抄(工具:node.js + express + handlebars)

用終端機移動到專案資料夾後,用下列指令產生 package.json 檔

npm init -y

修改 package.json 檔,設定入口檔案及腳本,例如:

"main": "app.js",
"scripts": {
    "start": "node app.js",
    "dev": "nodemon app.js",
    "test": "echo \"Error: no test specified\" && exit 1"
  },

安裝套件,例如

npm install express express-handlebars body-parser method-override

實用套件:

  • body-parser:解析 POST request 的 request body
  • method-override:瀏覽器只有 GET 和 POST 兩種請求方法。為了達成 RESTful API 的設計風格或其他理由,用 method-override 將請求方法改成別的名字,例如 PUT、DELETE 等等
  • express-session:為 http 請求加入狀態
  • passport:使用者驗證。不同的驗證方式,需使用對應的驗證策略
  • passport-local:在本地端進行驗證的驗證策略
  • bcryptjs:把機密資料(例如使用者的密碼)加鹽並雜湊
  • faker:產生假資料
  • multer:上傳檔案
  • helmet:設定與資訊安全有關的 HTTP 標頭
  • sanitize-html:消毒 HTML

建立入口檔案,打開該檔案做基本設定:

const express = require('express')
const exphbs = require('express-handlebars')
const bodyParser = require('body-parser')
const methodOverride = require('method-override')

const app = express()
const PORT = 3000

app.engine('hbs', exphbs({ defaultLayout: 'main', extname: '.hbs' }))
app.set('view engine', 'hbs')
app.use(bodyParser.urlencoded({ extended: true }))
app.use(methodOverride('_method'))

app.get('/', (req, res) => {
    res.send('Greetings from express!')
})
app.listen(PORT, () => {
    console.log(`express is listening on http://localhost:${PORT}`)
})

將專案登錄到版本控制管理系統 Git:在終端機輸入

git init

新增並設定 .gitignore 檔案,將不需要版本控制的檔案列進去

# OS X
.DS_Store*
Icon?
._*

# Windows
Thumbs.db
ehthumbs.db
Desktop.ini

# npm
node_modules
*.log
*.gz

# others
.env
temp/
upload/

將目前的進度建立一筆 commit(Git Commit Message 這樣寫會更好,替專案引入規範與範例

git add .
git commit -m "feat: project init"


最後更新時間:2021年3月26日

Comments

Popular posts from this blog

Alpha Camp 全端開發課程學習心得

在 javascript 用 regular expression 為金額加上千位數分隔符號

shop_platform - sqlalchemy.exc.TimeoutError