一、介紹
Express 是一個簡潔而靈活的 node.js Web應用框架, 提供了一系列強大特性幫助你創建各種 Web 應用,和豐富的 HTTP 工具以及中間件
二、引入
let express = require('express') // 引入express
let app = express() // 相當於 http.createServer(app)
// 訪問根路由
app.get('/',(request,response) => {
res.send('Hello World')
})
// 監聽3000端口
let server = app.listen(3000, '127.0.0.1', () => {
let host = server.address().address // host域
let port = server.address().port // 端口號
console.log(`Server running at http://${host}:${port}`)
})
基本的一個服務器就搭建完畢了
我們訪問 http://127.0.0.1:3000
三、請求和響應
我們看到回調函數具有 request 和 response 倆個對象,他們分別代表 請求和響應
Request 對象
request 對象表示 HTTP 請求報文,包含了請求頭,請求體
常見的屬性:
名稱 | 作用 |
---|---|
request.app | 當callback爲外部文件時,用req.app訪問express的實例 |
request.baseUrl | 獲取路由當前安裝的URL路徑 |
request.cookies | 獲取Cookie |
request.hostname | 獲取主機名 |
request.ip | 獲取IP地址 |
request.originalUrl | 獲取原始請求url |
request.path | 獲取請求路徑 |
request.query | 獲取URL查詢字符串 |
request.route | 獲取當前匹配的路由 |
request.accepts() | 獲取可接受的請求文檔類型 |
request.get() | 獲取指定的請求頭 |
request.is() | 判斷請求頭Content-Type的MIME類型 |
… | … |
Response 對象
request 對象表示 HTTP 響應報文,代表請求後的響應數據
常見的屬性有:
名稱 | 作用 |
---|---|
response.app | 當callback爲外部文件時,用req.app訪問express的實例 |
response.append() | 添加相應頭 |
response.set() | 在res.append()後將重置之前設置的頭 |
response.cookie(name,value [,option]) | 設置Cookie |
response.clearCookie() | 清除Cookie |
response.download() | 傳輸指定類型的文件 |
response.get() | 返回指定的響應頭 |
response.json() | 傳輸json |
response.jsonp() | 傳輸jsonp |
response.redirect() | 設置響應的Location HTTP頭,並且設置狀態碼302 |
response.render(view,[locals],callback) | 渲染一個view |
response.send() | 傳輸響應 |
response.sendFile(path [,options] [,fn]) | 傳送指定路徑的文件 -會自動根據文件extension設定Content-Type |
response.set() | 設置HTTP狀態碼 |
response.type() | 設置Content-Type的MIME類型 |
… | … |
Express – 路由
響應HTTP請求的路徑
let express = require('express')
let app = express()
// 包含請求方式,路徑,回調函數
app.get('/list', (req, res) => res.send('list'))
app.post('/add', {req, res} => res.send('add'))
app.put('/fix', {req, res} => res.send('fix'))
app.delete('/delete', {req, res} => res.send('delete'))
Express – 搭建靜態資源庫
Express 提供了內置的中間件 express.static 來設置靜態文件如:圖片, CSS, JavaScript 等。
直接通過路徑訪問public下面的資源
app.use(express.static('public'))
也可以加一層目錄
app.use('/public', express.static('public'))
訪問 http://127.0.0.1:3000/public/logo.png