Artikel ini akan berkongsi dengan anda cara menggunakan node.js untuk melaksanakan fungsi pengelogan akses antara muka saya harap ia akan membantu semua orang.
Sasaran
Gunakan teknologi middleware untuk menulis middleware untuk merekod log akses
Middleware
middleware, middleware ialah Alamat url khas pemprosesan fungsi , yang digunakan sebagai parameter app.use(中间件函数)
atau dalam fungsi pemprosesan penghalaan.
Express是一个自身功能极简,完全是路由和中间件构成一个web开发框架:从本质上来说,一个Express应用就是在调用各种中间件。
[Pembelajaran yang disyorkan: "tutorial nodejs"] Penggunaan asas middleware
// 具名函数格式: const handler1 = (req, res, next) => { console.log(Date.now()); next(); } app.use(handler1);
// 匿名函数格式: app.use((req, res, next) => { console.log(Date.now()); next(); });
Nota : Terdapat tiga parameter asas dalam fungsi middleware, req, res, seterusnya
req ialah objek berkaitan permintaan, iaitu berkaitan dengan yang berikut Objek req dalam fungsi middleware ialah objek
res yang merupakan objek berkaitan tindak balas Ia adalah objek yang sama dengan objek res dalam fungsi middleware seterusnya , res tidak akan dilaksanakan tamat, keseluruhan permintaan akan tersekat dalam perisian tengah semasa.
Idea
Gunakan teknologi middleware untuk merekod setiap permintaan Cipta fail untuk menyimpan rekod
.json
.json
Tangkapan skrin konsol
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"); });
Teks asal Alamat: https:// juejin.cn/post/7008510822578126862
Pengarang: Buco
Untuk lebih banyak pengetahuan berkaitan pengaturcaraan, sila lawati:
! !
Video Pengaturcaraan
Atas ialah kandungan terperinci Perbincangan ringkas tentang cara menggunakan Nodejs untuk mencipta perisian tengah pengelogan akses. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!