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结果: