express中间件分三类

中间件一般都是通过i修改req 或res对象来为后续的处理提供遍历的使用

 

中间件分类 next 放行函数

  • use(function(req,res,next){})
  • use(‘请求路径‘,function(req,res,next){})
  • get(‘请求路径‘,function(req,res,next){})
  • post(‘请求路径‘,function(req,res,next){})

 

错误日记处理方式

const express=require(‘express‘)
const fs = require(‘fs‘)
const app=express();


app.get(‘/‘, (req, res) => {
    //通过JSON.parse解析查询字符串中的某个
    try {
        const data = JSON.parse(‘{abc‘);
        res.json(data);
    } catch (e) {
        const error_log = `
        错误名:${e.name}
        错误消息:${e.message}
        错误堆栈:${e.stack}
        错误时间:${new Date()}
        `
        fs.appendFile(‘./err_log.txt‘, error_log, (err) => {
            res.writeHead(500, {})
            res.end(‘500 服务器正忙,请稍后重试‘)
        })
    }
})


app.get(‘/a‘, (req, res, next) => {
    fs.readFile(‘./a.text‘, (err, data) => {
        if (err) {
            //这里调用的next会被app.use((err,req,res,next))这个中间件匹配到
            next(err)
        }
    })
})

//该中间件只有被带有参数的next才能调用到
app.use((err, req, res, next) => {
    const error_log = `
    错误名:${e.name}
    错误消息:${e.message}
    错误堆栈:${e.stack}
    错误时间:${new Date()}
    `
    fs.appendFile(‘./err_log.txt‘, error_log, (err) => {
        res.writeHead(500, {})
        res.end(‘500 服务器正忙,请稍后重试‘)
    })
})

//404处理中间件
app.use((req,res,next)=>{
    res.end(‘404‘)
})

app.listen(3000,()=>{
    console.log(‘server start and listen at 3000‘)
})

 

express中间件分三类

上一篇:判断是否为一颗二叉树的子输-字符串


下一篇:pcl之filtering滤波