express與express-generator的差別?
npm install -g express-generator
建立專案資料夾名為 'myapp' 的應用程式--git
自動加入.gitignore,把所有可以不用push上repo的檔案/資料夾都幫你寫好-v
or --view
選擇server side要使用的template engine,這邊使用pug (前身為jade)
express -v pug --git myapp
# for more information
express -h
建立完成後的架構如下
注意:其中 run the app 指令是有問題的,且 win & osx 會不同(後述)
cd myapp
npm install
由於express-generator有幫我們安裝debug
所以執行npm start 前可以把需要顯示的debug設定好
SET DEBUG=myapp:* ; npm start
// 或是
$env:DEBUG="myapp:*" ; npm start
# myapp:* 顯示全部
# 注意:windows無法使用 "&" 連接兩個要執行的command,需使用";"
# 官方是說windows & PowerShell (win10)的指令不同,不過目前試過都可以
# 但如果你的vsc是PowerShell就只能使用2.
# 可將整串指令加入package.json中scripts.start內 (但只支援1.寫法)
# DEBUG環境的設定
$env:DEBUG="*" # 顯示全部
$env:DEBUG="myapp:*" # 顯示namespace為myapp開頭全部
$env:DEBUG="*,-express:*" # 顯示全部,但除了namespace開頭為express
由於前端的js無法像後端一樣,使用require引用模組套件
因此需要browserify將有使用require模組的 js 轉為前端可讀的 js
npm install -g browserify
# 其他專案可能也會使用到,所以全域安裝
var debug = require('debug')('myapp:index-client')
debug('hello!')
browserify index.js -o index_bundle.js
views/index.pug
引入extends layout
block content
script(src='/javascripts/index_bundle.js')
h1= title
p Welcome to #{title}
npm start
後連入 http://localhost:3000/