npm-package-nodejs-utils-lda
Version:
Este projeto tem como fins de criar e abstrair módulos basicos e utilidades para o node js
48 lines (39 loc) • 1.44 kB
JavaScript
const { fopen, fwrite, log } = require("./autoFileSysModule.cjs");
const { configExist } = require("./configHelper.cjs");
// garante que config.json existe
configExist();
checkConfigIntegrity();
async function requestLogger(req, res, next) {
const configs = fopen("config.json");
if (!configs.requestLogger.enabled) return next();
const userAgent = req.headers["user-agent"] || "Desconhecido";
const ip =
req.headers["x-forwarded-for"] ||
req.connection?.remoteAddress ||
req.socket?.remoteAddress ||
"IP não detectado";
const referer = req.headers["referer"] || "Sem referer";
console.log("\n--- NEW REQUEST ---");
console.log("IP:", ip);
console.log("METHOD:", req.method);
console.log("URL:", req.originalUrl);
console.log("Referer:", referer);
console.log("User-Agent:", userAgent);
console.log("Headers:", JSON.stringify(req.headers, null, 2));
console.log("------------------------\n");
await log(
`REQ [${new Date().toISOString()}] IP=${ip}, URL=${
req.originalUrl
}, UA=${userAgent}`,
"requestLogger.txt"
);
next();
}
function checkConfigIntegrity() {
const configs = fopen("config.json");
if (!configs.requestLogger) configs.requestLogger = {};
if (configs.requestLogger.enabled === undefined)
configs.requestLogger.enabled = true;
fwrite("config.json", configs);
}
module.exports = requestLogger;