多语言网站开发,泰安最新消息今天,做竞价的网站有利于优化吗,郑州专业制作网站费用写在前面 今天我们实现一个记录 nodejs 服务请求日志的功能#xff0c;大概的功能包括请求拦截#xff0c;将请求的信息作为日志文件的内容写入到 txt 文件中#xff0c;然后输出到指定的日志到当天日期目录中#xff0c;从而实现后续查找用户请求信息的功能#xff0c;下…写在前面 今天我们实现一个记录 nodejs 服务请求日志的功能大概的功能包括请求拦截将请求的信息作为日志文件的内容写入到 txt 文件中然后输出到指定的日志到当天日期目录中从而实现后续查找用户请求信息的功能下面的内容有一部分是之前文章中实现过的需要的可以移步 NodeJs 连接本地 mySql 数据库获取数据 NodeJs实现对本地 mysql 数据库的增删改查 上面有对mysql 数据的链接 本地服务的启动和对数据库的 CURD 基本操作实现。 文件写入功能封装
/*** author clearlove* use 文件的写入操作* fileName utils/index.js*/const fs require(fs)
/*** param {[type]} 文件名字* param {String} 编码格式* param {[type]} 文件路径* param {[type]} 写入内容* return {[type]} 写入函数操作*/
const writeFileToFolder (fileName, enCoding utf-8, filePath, writeContent) {fs.writeFile(${filePath}${fileName}, writeContent, enCoding, (err, data) {if (err) {throw err} else {console.log(logger write is success);}});
}module.exports {writeFileToFolder
}实现中间件
/*** author clearlove* aim 日志中间件*/
const moment require(moment);
const fs require(fs);
const utils require(../../fileOptinos//utils//index.js)
const loggerPath /Users/weileiming/sublime/front/nodeJsLinkMysql/logs/;const logsMiddleWare (req, res, next) {// 当天文件夹名const folderName moment().format(YYYY-MM-DD)// 日志文件名const fileName /log${new Date().getTime()/1000}.txt// 输出日志内容const loggerContent {reqContent: req.body,reqUrl: req.originalUrl,time: new Date().toString(),}// 创建文件夹fs.mkdir(${loggerPath}/${folderName}, { recursive: true }, (err) {if (err) throw err;// 写入日志内容utils.writeFileToFolder(${folderName}${fileName}, utf-8, loggerPath, JSON.stringify(loggerContent))next()});
}module.exports logsMiddleWare引入全局中间件 这里是使用全局中间件的方式实现自己实现的时候可以根据实际情况判断是不是需要引入全局的中间件进行处理 /*** author 是悟能了* aim 实现基础服务* fileName baseServer.js*/const express require(express);
const bodyParser require(body-parser);
const logsMiddleWare require(./middleWares/logMiddleWare/index.js)
const serve express();
const port 8000;// TODO: 解析获取到的 json 数据
serve.use(bodyParser.urlencoded({extended: false
}));
serve.use(bodyParser.json());
// 注册日志中间件
serve.use(logsMiddleWare)serve.listen(port, () {console.log(serve is running...port ${port});
});module.exports serve;效果测试 调用接口 文件目录如上图
多次生成日志目录结构图 写在最后 基础功能实现了后续有需要的话可以将自己的请求部署到远程服务器上进行使用日志文件也可以直接输出到远程存储桶中进行永久保存这些可以自己按照需求进行实现。