Express中間件
1、全局中間件
const express = require("express")
const app = express()
// 此處便是一個全局中間件,任何請求都會被攔截在此處
// 如果不執行next(),程序就會卡在這裏
app.use("/", (req, res, next) => {
console.log("this is a global middleware")
next()
})
app.get("/user/login", (req, res) => {
res.send("user login");
})
app.get("/user/register", (req, res) => {
res.send("user register");
})
app.listen(4000, () => {
console.log("server start")
})
訪問結果如下:
控制檯輸出:
2、局部中間件
const express = require("express")
const app = express()
// 此處在路由/user/login中加上了局部中間件,第二個參數和第三個參數都是中間件,這個中間件可以加很多層
// 但要記得執行next
app.get("/user/login", (req, res, next) => {
console.log("this is a local middleware")
next()
}, (req, res, next) => {
console.log("this is also a local middleware")
next()
}, (req, res) => {
res.send("user login");
})
app.listen(4000, () => {
console.log("server start")
})
訪問結果如下:
控制檯輸出:
3、內置中間件
const express = require("express")
const path = require("path")
app = express()
// __dirname當前文件所在的文件夾路徑
// app.use("/",express.static(path.join(__dirname, "./test")))
app.use(express.static(path.join(__dirname, "./test")))
// 域名localhost:4000指向到了test目錄
app.listen(4000, () => {
console.log("server started")
})
當前文件所在的目錄關係:
在瀏覽器中訪問http://localhost:4000/demo.html結果: