Express
Express 是最小又靈活的 Node.js Web 應用程式架構。
以下是一個簡單的 Hello World Web Application 範例:
以下是一個簡單的 Hello World Web Application 範例:
var express = require('express');
var app = express();
app.get('/', function (req, res) {
res.send('Hello Express!');
});
app.listen(3000, function () {
console.log('Example app listening on port 3000!');
});
第四行指的是設定了一個 handler,用來處理 "/" 的網頁請求,結果如圖 1。![]() |
| 圖1. Hello Express! |
使用中介軟體 (Middleware)
在 express app 回傳任何請求前,可以透過 middleware function 來截斷請求,這裡可以用來印一些資訊到 console 上,或處理驗證請求的合法性。之後呼叫 next 函式,讓請求繼續被處理,否則程式會停擺在那。範例,在任何請求之前印出當前的時間資訊:
var app = express()
app.use(function (req, res, next) {
console.log('Time:', Date.now())
next()
})
Handlebars
Handlebars 是一套模板引擎,且相容於 Mustache 的格式,可以用來動態渲染 HTML 的內容。透過 npm 安裝:
npm install hbs --save範例:
var express = require('express');
var hbs = require('hbs');
var app = express();
app.set('view engine', 'hbs');
app.get('/about', function (req, res) {
res.render('about.hbs', {
pageTitle: 'This is About Page!'
});
});
app.listen(3000, function () {
console.log('Example app listening on port 3000!');
});
// about.hbs
<pre class="brush: html">
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>{{pageTitle}}</title>
</head>
<body>
<h1>About Page</h1>
</body>
</html>
在網址列上輸入 localhost:3000/about 後,就可以看到顯示 "This is About Page!",表示 pageTitle 有正確被傳遞給 about.hbs 了。