express 的安裝
$ npm install express
或者
$ npm install -g express
創建服務器
要創建 express.HTTPServer
的實例,只需簡單的調用 createServer()
方法即可。通過 HTTPServer
實例 app
我們可以定義基於 HTTP 動作(HTTP verbs)的路由(routes),本例中爲 app.get()
。
var app = require('express').createServer(); app.get('/', function(req, res){ res.send('hello world from csser.com!'); });app.listen(3000);
創建 HTTPS 服務器
要初始化一個
express.HTTPSServer
實例,與上例相似,不同的是在createServer
方法我們傳入一個對象作爲配置參數,該對象接受key
,cert
和其它在NodeJS https文檔中提到的配置參數。var app = require('express').createServer({ key: ... });
配置
Express支持多工作環境,比如
生產環境
和開發環境
等。開發者可以使用configure()
方法根據當前環境的需要進行設置,當configure()
沒有傳入環境名稱時,它會在各環境之前被調用(一回注:相當於被各個明確環境所共享)。下面的示例我們只拋出異常(
dumpException
),並且在開發模式
對異常堆棧的輸出做出響應,但是不論對開發或者生產環境我們都使用了methodOverride
和bodyParser
。特別注意對app.router
的使用,它可以被用來設置應用的路由
(可選),否則首次對app.get()
、app.post()
等的調用會設置路由。// 定義共享環境 app.configure(function(){ app.use(express.methodOverride()); app.use(express.bodyParser()); app.use(app.router); }); // 定義開發環境 app.configure('development', function(){ app.use(express.static(__dirname + '/public')); app.use(express.errorHandler({ dumpExceptions: true, showStack: true })); }); // 定義生產環境 app.configure('production', function(){ var oneYear = 31557600000; app.use(express.static(__dirname + '/public', { maxAge: oneYear })); app.use(express.errorHandler()); });
對於內部和多重設置(internal和arbitrary),Express提供了
set(key[, val])
,enable(key)
,disable(key)
等方法:app.configure(function(){ app.set('views', __dirname + '/views'); app.set('views'); // => "/absolute/path/to/views" app.enable('some feature'); // 與 app.set('some feature', true); 相同 app.disable('some feature'); // 與 app.set('some feature', false); 相同 app.enabled('some feature') // => false });
要修改環境,可以通過設置
NODE_ENV
環境變量來實現,例如:$ NODE_ENV=production node app.js
這很
重要
,因爲許多的緩存機制只有在生產環境纔會啓用
。
設置
Express 支持以下設置項:
- home爲res.redirect()提供應用的基準路徑,透明的處理已安裝的應用。
- views視圖(views)層的根目錄,默認指向CWD/views
- view engine默認的視圖(view)引擎的名字,不包含擴展名。
- view options用於設置全局視圖選項的對象