怎样使用Nodejs创建访问日志记录的中间件
发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,怎样使用Nodejs创建访问日志记录的中间件,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。中间件-访问日志目标利用中间件技术,写一个用来
千家信息网最后更新 2025年01月23日怎样使用Nodejs创建访问日志记录的中间件
怎样使用Nodejs创建访问日志记录的中间件,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
中间件-访问日志
目标
利用中间件技术,写一个用来记录访问日志的中间件
中间件
middleware, 中间件是一个特殊的url地址处理函数,它被当作 app.use(中间件函数)
的参数或者是某个路由处理函数中使用。
中间件是 express 的最大特色,也是最重要的一个设计。
Express是一个自身功能极简,完全是路由和中间件构成一个web开发框架:从本质上来说,一个Express应用就是在调用各种中间件。
【推荐学习:《nodejs 教程》】一个 express 应用,就是由许许多多的中间件来完成的。
中间件的基本使用
// 具名函数格式:const handler1 = (req, res, next) => { console.log(Date.now()); next();}app.use(handler1);
// 匿名函数格式:app.use((req, res, next) => { console.log(Date.now()); next();});
说明:中间件函数中有三个基本参数, req、res、next
req 就是请求相关的对象,它和下一个中间件函数中的req对象是一个对象
res 就是响应相关的对象,它和下一个中间件函数中的res对象是一个对象
next 它是一个函数,调用它将会跳出当前的中间件函数,执行后续中间件;如果不调用next,也不执行res.end,则整个请求都会在当前中间件卡住。
思路
应用中间件技术,将每条请求都记录下来
建立一个
.json
的文件用来存储记录将数据读取后放入
.json
文件
js实现代码
const express = require("express");const app = express();const fs = require("fs");// 获取ip的函数function getClientIp(req) { return ( req.headers["x-forwarded-for"] || req.connection.remoteAddress || req.socket.remoteAddress || req.connection.socket.remoteAddress );}// 中间件app.use((req, res, next) => { console.log("时间", new Date()); console.log("访问地址", req.url); console.log("f访问ip", getClientIp(req)); /** * 建立一个.json的文件 [] * 获取文件内容'[]'==>[] * let obj = {time:xxx,url:xxx,ip:xxx} * [].push(obj) * [].push(obj)覆盖写入.json的文件 */ fs.readFile("hhhh.json", "utf8", (err, data) => { if (err) { console.log("文件读取错误", err); return; } let arr = JSON.parse(data); //console.log(arr); let obj = {}; obj.time = new Date(); obj.url = req.url; obj.ip = getClientIp(req); arr.push(obj); console.log(arr); let newArr = JSON.stringify(arr); fs.writeFile("hhhh.json", newArr, (err) => { if (err) { console.log("写入错误", err); } }); }); next();});// 监听接口app.listen(8080, () => { console.log("成功,接口是8080");});
控制台截图
看完上述内容,你们掌握怎样使用Nodejs创建访问日志记录的中间件的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!
中间件
函数
对象
文件
日志
内容
就是
应用
参数
地址
技术
接口
方法
更多
格式
路由
错误
问题
处理
特殊
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
全国网络安全周宣传语
网络安全最新舆情
数据库能放音乐资源吗
龙岗区服务器机柜
网络技术在哪招聘
如何在云服务器上玩游戏
服务器上文字出现问号乱码
地形图数据库及其主要特点
河南上门软件开发方案
软件开发的最新趋势
t 安装创建数据库失败
网络服务器共享ip
数据库如何插入属性列的数据信息
gps车辆监控服务器
林业一张图数据库地类标准
2019网络安全事件案例
服务器与操作系统间的区别
ug怎么导入加工数据库
怎么安装三级网络技术
西安网络安全法实施日
泰国饭店数据库
软件开发模式区别
fct夹具软件开发语言
山东省春考计算机网络技术
VFP数据库文件是
软件开发招标文件技术评分
联想服务器硬件研发工程师
岁末年初国资企业网络安全总结
中国大学生网络安全在线
广东软通动力网络技术