http://www.expressjs.com.cn/html
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( )
(1)static靜態資源處理中間件
(2)logger獲取瀏覽器基本信息中間件
(3)bodyParser經過post方法提交的數據解析中間件
(4)query經過get方法提交的數據解析中間件
(5)cookieParser用戶狀態保存cookie解析中間件
(6)session啓用session管理用戶狀態中間件
(7)favicon網站圖標處理中間件
路由指如何定義應用的端點,以及如何響應客戶端的請求(通俗的講就是經過制定不一樣的路徑,調用對應方法處理用戶的請求)
路由是由一個URL、HTTP請求(GET、POST等)和若干個句柄組成
路由中的URL路徑支持正則表達式的方式,例如:/abc?123,表示c無關緊要
路由的鏈式編程:
app.route(‘/parma’).get(function(req,res,next){}).post(function(req,res,next){})
表示相同路徑下不一樣請求方式的訪問
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();
})
(1)get(field)獲取請求頭中對應名稱的屬性
(2)is(type)判斷是否有指定的mime類型,Content-Type
(3)param(name)獲取指定名稱的參數值(post,get都可)
(1)app表示express的應用對象
(2)headersSent代表是否發送過數據給響應對象,是一個boolean值
(3)Locals本地變量
(1)set(key,value)設置響應頭信息
(2)append(key,value)在響應頭中追加數據
(3)cookie(name,value,[option])設置cookie
(4)clearCookie(name,[option])清除指定的cookie
(5)download(path,filename,fn)下載文件
(6)end(data,encoding)結束文本數據的輸入
(7)get(field)獲取響應頭中對應的屬性值
(8)json(body)發送json字符對象
(9)location(path)指定網站地址
(10)redirect(status,path)重定向到指定的路徑
(11)render(view,locals,callback)渲染指定的視圖
(12)type(「.html」)設置傳遞給瀏覽器文件的響應mime類型Content-Type
(13)sendStatus(302)設置狀態碼爲302,重定向,加載location中的地址
(14)writeHead(302,{location:」http://www.baidu.com/」})設置狀態碼爲302,且加載location中的地址,頁面跳轉到百度
(15)send(data)能夠傳遞多種數據類型,可是每一個路由中只能使用一次,且不能和sendStatus等帶有send標識的方法同用
(16)write(data)傳遞數據
(17)end(data)響應結束標識方法
(18)download(「path」 , setname , fn)下載文件
(19)sendFile(「path」)發送文件,此處爲絕對路徑
簡單高效的模板語言,經過數據和模板,能夠生成HTML標記文本
ejs特色:
(1)快速編譯和渲染
(2)簡單的模板標籤
(3)自定義標記分隔符
(4)文件的包含
(5)支持瀏覽器端和服務器端
(6)模板靜態緩存
(7)支持express視圖系統
(1)Render(str,data,[option]):直接渲染字符串生成HTML
str:須要解析的字符串模板
data:數據
[option]:配置選項
(2)Compile(str ,[option]):編譯字符串獲得模板函數
str:須要解析的字符串模板
[option]:配置選項
[option]中的相關參數能夠查閱文檔瞭解使用方法
(1)<% %>流程控制標籤
(2)<%= %>輸出標籤(原文輸出HTML標籤)
(3)<%- %>輸出標籤(HTML會被瀏覽器解析)
(4)<%# %>註釋標籤
(5)%對標記轉義
(6)-%>去除沒有意義的空格