封装一个日志中间件
-
记录请求方法(get/post)
-
记录访问路径
-
记录响应状态码
-
记录处理耗时
-
写入日志文件
//logger.js
const fs=require('fs')
const path=require('path')
const logFile=path.join(__dirname,'../logs/access.log')
module.exports=(req,res,next)=>{
const start=Date.now() //记录请求开始时间
res.on('finish',()=>{
const duration=Date.now()-start //计算请求耗时
const log=[${new Date().toISOString()}]${req.method}${req.originalUrl}${res.statusCode}${duration}ms//拼接的日志内容
fs.appendFile(logFile,log+'\n',err=>{
if(err) console.log('写入日志失败:',err) //如果写入失败,输出错误信息
})
})
next() //继续执行下一个中间件
}//app.js
const express=require('express') //引入express 框架
const logger=require('./middleware/logger')
const app=express() //创建应用实例
const port=3000
app.use(logger) //使用日志中间件
app.get('/',(req,res)=>{
res.send('首页
')
})
app.get('/about',(req,res)=>{
res.send('关于我们页面
')
})
//启动服务器
app.listen(port,()=>{
console.log('服务器')
})