Nodejs express框架 淺析

http://www.expressjs.com.cn/html

1. 中間件

掛載中間件的函數:app.use

var http = require('http');正則表達式

var express = require('express');express

var app = express();npm

使用自定義中間件編程

app.use('/',function(req , res , next){json

     console.log(‘這是自定義中間件’)瀏覽器

     next();  調用next表示執行後續的中間件代碼緩存

});服務器

使用static中間件加載靜態資源cookie

app.use('/', express.static(__dirname + "/statics"));

app.get('/index', function(req, res) {

    res.send("hello browser")

    res.end();

})

http.createServer(app).listen(3000,function(err) {

        if(err) throw err;

        console.log('服務器鏈接成功');

})

安裝中間件,npm install body-parser –save

使用中間件:

若是express是4.0如下版本須要掛載在express後面使用express.bodyParser( )

若是express是4.0以上版本,能夠直接使用bodyParser( )

基礎中間件介紹

1static靜態資源處理中間件

2logger獲取瀏覽器基本信息中間件

3bodyParser經過post方法提交的數據解析中間件

4query經過get方法提交的數據解析中間件

5cookieParser用戶狀態保存cookie解析中間件

6session啓用session管理用戶狀態中間件

7favicon網站圖標處理中間件

2. express路由

路由指如何定義應用的端點,以及如何響應客戶端的請求(通俗的講就是經過制定不一樣的路徑,調用對應方法處理用戶的請求)

路由是由一個URLHTTP請求(GETPOST等)和若干個句柄組成

路由中的URL路徑支持正則表達式的方式,例如:/abc?123,表示c無關緊要

路由的鏈式編程:

app.route(‘/parma’).get(function(req,res,next){}).post(function(req,res,next){}

表示相同路徑下不一樣請求方式的訪問 

req參數的經常使用屬性

app.get('/index', function(req, res) {

        console.log(req.baseUrl);   掛載路由的路徑,以根路徑爲標準

        console.log(req.hostname);  

        console.log(req.ip);      本機的ip地址

        console.log(req.path);     此處爲/index

        console.log(req.protocol);    傳輸協議,通常爲http

        console.log(req.query);     地址欄url中傳輸的參數

        console.log(req.route);      路由對象

        console.log(req.body);      post方法提交的數據

        console.log(req.cookies);    瀏覽器中存儲的cookie

        console.log(req.signedCookies);    瀏覽器中已簽署的cookie,及已經加密過的cookie app.use(cookieParser(「secret」))

    res.send("hello browser")

    res.end();

})

req參數的經常使用方法

1get(field)獲取請求頭中對應名稱的屬性

2is(type)判斷是否有指定的mime類型,Content-Type

3param(name)獲取指定名稱的參數值(postget都可)

文件上傳插件busboy

res參數的經常使用屬性

1app表示express的應用對象

2headersSent代表是否發送過數據給響應對象,是一個boolean

3Locals本地變量

res參數的經常使用方法

1set(key,value)設置響應頭信息

2append(key,value)在響應頭中追加數據

3cookie(name,value,[option])設置cookie

4clearCookie(name,[option])清除指定的cookie

5download(path,filename,fn)下載文件

6end(data,encoding)結束文本數據的輸入

7get(field)獲取響應頭中對應的屬性值

8json(body)發送json字符對象

9location(path)指定網站地址

10redirect(status,path)重定向到指定的路徑

11render(view,locals,callback)渲染指定的視圖

12type(「.html」)設置傳遞給瀏覽器文件的響應mime類型Content-Type

13sendStatus(302)設置狀態碼爲302,重定向,加載location中的地址

14writeHead(302,{location:」http://www.baidu.com/」})設置狀態碼爲302,且加載location中的地址,頁面跳轉到百度

15send(data)能夠傳遞多種數據類型,可是每一個路由中只能使用一次,且不能和sendStatus等帶有send標識的方法同用

16write(data)傳遞數據

17end(data)響應結束標識方法

18download(「path」 , setname , fn)下載文件

19sendFile(「path」)發送文件,此處爲絕對路徑

3. ejs模板引擎

簡單高效的模板語言,經過數據和模板,能夠生成HTML標記文本

ejs特色:

1)快速編譯和渲染

2)簡單的模板標籤

3)自定義標記分隔符

4)文件的包含

5)支持瀏覽器端和服務器端

6)模板靜態緩存

7)支持express視圖系統

① ejs成員函數

1Render(str,data,[option]):直接渲染字符串生成HTML

str:須要解析的字符串模板

data:數據

[option]:配置選項

2Compile(str ,[option]):編譯字符串獲得模板函數

str:須要解析的字符串模板

[option]:配置選項

[option]中的相關參數能夠查閱文檔瞭解使用方法

ejs經常使用標籤

1<%  %>流程控制標籤

2<%=  %>輸出標籤(原文輸出HTML標籤)

3<%-  %>輸出標籤(HTML會被瀏覽器解析)

4<%#  %>註釋標籤

5%對標記轉義

6-%>去除沒有意義的空格

ejs1中的過濾器(查看文檔瞭解使用方法)

相關文章
相關標籤/搜索