引入express
const express = require('express')
const bodyParser = require('body-parser')
const session = require('express-session')
創(chuàng)建服務
const app = express()
const port = 8086
app.listen(port, () => {
console.log(`server success on ${port}`)
})
靜態(tài)資源文件的處理
app.use(express.static('./static'))
middleware中間件
- 中間件的本質就是一個函數.
- 執(zhí)行任何代碼厦章。
- 對請求和響應對象進行更改。
- 結束請求/響應循環(huán)。
- 調用堆棧中的下一個中間件函數援所。
- 中間件的執(zhí)行順序是按照書寫的先后順序執(zhí)行的
app.use('/user', (req, res, next) => {
//請求的path地址是以'/user' 開頭的揭朝,例如'/user' ,'/user/add'
next()
})
app.use((req, res, next) => {
//相當于路勁匹配為* 即所有的請求都會走這個中間件
next()
})
body-parser中間件
- bodyParser
- 如果是post/put請求
- bodyParser.json() 如果傳遞的是json格式的字符串队贱,會把請求主體傳遞的信息轉為json格式的對象
- bodyParser.urlencoded() 如果傳遞的是urlencoded格式的字符串(即user=shulu&password=123形式),會把它轉為對象鍵值對的方式
- 經這個中間件的這兩個方法處理后潭袱,會把轉化后的結果掛載到req.body上
app.use(bodyParser.json())
app.use(bodyParser.urlencoded())
api處理
req的常用屬性 不是原生的
req.params 請求的路徑參數信息
req.path 請求的路勁名稱
req.query 請求的問號參數的內容(get請求都是這樣傳遞的信息)
req.body 請求的方式是post時柱嫌,我們使用body-parser中間件處理后,會把請求主體中的內容存放到body屬性中
req.session 我們基于express-session中間件處理后屯换,會把session操作放到這個屬性上
req.cookies 我們基于cookie-parser中間件處理后编丘,會把cookie的操作放到這個屬性上
req的常用方法 不是原生的
req.get() 獲取指定的請求頭信息
res的常用方法 不是原生的
res.cookie(name, value, [opation]) 設置一些cookie信息,通過響應頭set-cookie返回給客戶端,客戶端瀏覽器把cookie信息種到本地
res.json([body]) 向客戶端返回json格式的字符串嘉抓,但是允許我們寫json對象索守,該方法會自動轉為json,(執(zhí)行該方法后會自動結束響應res.end)
res.redirect([status,] path) 響應是重定向的(默認狀態(tài)嗎302)
res.type(type) 設置相應內容的mime類型
res.status() 設置響應的HTTP狀態(tài)碼
res.sendFile(path [, options] [, fn]) 發(fā)送文件
res.send() 想發(fā)送啥就發(fā)送啥
get請求處理
app.get('/getUser', (req, res) => {
res.send({
message: 'ok'
})
})
post請求處理
app.post('/home', (req, res) => {
res.send({
message: 'hello'
})
})