NodeJs 的中间件分为两种:
- 应用中间件
app.use()
- 路由中间件
app.get()
、app.post()
等等
一、应用中间件
应用中间件一般有两种用法:
- 静态路由静态文件
app.use("/public",express.static("public.txt"));
访问:http://127.0.0.1:3000/public
成功打开 public.txt
- 拦截器
利用单纯的 use 可以拦截所有的请求。拦截完成放行的使用next
,才会继续匹配下面的路由。
// 匹配所有的路由,这他妈的不就是axios的拦截器吗
app.use(function(req, res,next) {
console.log("☀☀☀☀☀☀☀☀☀☀☀");
next();
});
每次访问后台CMD都会打印出太阳。
- 错误路由
一般放在最后,路由错误的时候匹配,返回 404 或打开 erro.html 文件。
// 错误中间件
// 前面不写东西表示匹配所有的路由
app.use(function(req, res) {
console.log("我一般放在最后,路由错误的时候匹配到我!");
res.status(404).send("这是个404页面,请检查请求路径!");
});
二、路由中间件
- 多个路由
// 路由中间件
app.get('/info', function(req, res,next) {
console.log("☆☆☆☆☆☆☆☆☆☆☆☆");
next();
});
app.get('/info', function(req, res) {
res.send("第二条匹配!")
});
一般路由匹配到第一个就不会再往下进行匹配了,所以要想匹配多个路由,必须的放行,依然使用 next()
方法。注意第一个匹配成功的如果没放行,且没写 res.send() ,访问网址的时候,小菊花会一直转。