express.js是nodejs的一個MVC開發框架,而且支持jade等多種模板。下面簡單來講說express的安裝和app.js文件的配置,而後在從此的教程中一步一步使用express.js搭建個聊天室。javascript
安裝express.jscss
若是你安裝了npm,安裝變得很簡單,只須要在終端中運行下面的代碼便可:java
-g表明安裝到NODE_PATH的lib裏面,而-d表明把相依性套件也一塊兒安裝。若是沒有-g的話會安裝目前所在的目錄(會創建一個node_modules的文件夾),你能夠透過如下指令來比較二者的不一樣:node
若是沒有npm,那麼我可使用github來git下來最新的express。
好了,如今你能夠經過express testapp來創建express實例。如下是示例:git
這樣就創建了一個testapp的nodejs應用,而app.js是默認的應用主js。下面來詳細的說說app.js中的各項配置。github
引入模塊
express
require()是node.js提供的函數,可讓你引入其餘模塊以調用模塊的函數和變量,默認下node.js會在$NODE_PATH和目前js所在目錄下的node_modules文件夾下去尋找模塊。require也能夠用來載入本身寫的模塊哦~這樣涉及到node.js的模塊機制,後面有機會就在介紹。npm
第二行的express.createServer()就是在創建server,而中間的module.exports也是涉及到node.js的模塊機制,之後再說。服務器
express的app.js的詳細配置說明app
express.js繼承自connect模塊,因此若是你的node_modules文件夾下沒有connect模塊也是不行的。
設置views路徑和模板
咱們再來看下面兩行:
上面兩行是設置views文件夾,即模板文件夾,__dirname是node.js裏面的全局變量,即取得執行的js所在的路徑,另外__filename是目前執行的js文件名。因此,app.set(‘views', __dirname + ‘/views');是設置views的文件夾。
而app.set('view engine', 'jade');是設置express.js所使用的render engine。除了Jade以外,express.js還支持EJS(embedded javascript)、Haml、CoffeScript和jQuery template等js模板。
app.use配置
express.bodyParser()是Connect內建的middleware,設置此處能夠將client提交過來的post請求放入request.body中。
express.methodOverride()也是Connect內建的,能夠協助處理POST請求假裝PUT、DELETE和其餘HTTP methods。
app.router()是route requests,但express.js的官方文件是這句無關緊要,而且通過測試還真的是這樣,不過仍是寫上吧。
express.static()也是一個Connect內建的middleware來處理靜態的requests,例如css、js、img文件等。因此static()裏面指定的文件夾中的文件會直接做爲靜態資源吐出來。
app.configure設置
express.errorHandler()是Connect內建的middleware來協助處理例外。這裡也揭露了app.configure()的令一個用法,第一個參數是node.js的環境設定,如此我們就能夠設定在不一樣的執行環境使用不一樣程度的dump。PS:node.js是透過NODE_ENV這個環境變數來取得環境設定,e.g.:在命令列,NODE_ENV=production node app.js就能夠進入production環境。
路由和request的處理
ok,下面是nodejs處理request的內容:
上面的代碼意思是,get請求根目錄則調用views文件夾中的index模板,而且傳入參數title爲「Express」,這個title就能夠在模板文件中直接使用。
在express中要處理post請求,須要使用app.post()。以下面的代碼:
前面咱們提到了req.body是express.bodyParser()把POST參數處理後的結果。
另外除了get和post方法,還有app.all()意思就是全部的請求處理。
添加listen,啓動nodejs服務器