1.应用中间件
应用中间件有很多,下面举例经常用到的几种中间件
登陆拦截
//登录拦截app.use((req, res, next) => {let isLogin = falseif (isLogin) {next()} else {res.send('你需要登录后才可访问')}})
网站维护
app.use((req, res, next) => {res.send('⽹站正在维护中')})
自定义404页面
//通过res.status(404)使状态码返回为404app.use((req, res) => {res.status(404).send('404 NOT FOUND')})
2.错误处理中间件
错误处理
app.use((err,req,res,next)=>{res.status(500).send(err.message)})
可以用下面这种方法自己测试一下触发错误
手动触发错误处理
app.get('/index', (req, res, next) => {fs.readFile('./index.js', 'utf8', (err, result) => {if (err) {next(err)return;} else {res.send(result)}})})
3.路由中间件
const express = require('express')const blog = express.Router()app.use('/blog',blog)blog.get('/index', (req, res, next) => {req.name = '22222222222'next()})blog.get('/index', (req, res) => {res.send(req.name)})
4.内置中间件
静态资源匹配
const path = require('path')//访问项目路径+public+绝对路径app.use(express.static(path.join(__dirname, 'public')))