我必须构建一个自定义记录器,记录有关它收到的每个请求的信息。我必须使用:Agent,Time,Method,Resource,Version,Status我想我已经创建了记录器和要记录的东西。现在我必须公开一个端点http://localhost:3000/logs,该端点将返回一个json对象,其中包含我不知道如何执行的所有日志。救命!
const express = require('express');
const fs = require('fs');
const app = express();
app.use(( req, res, next) => {
// write your logging code here
var agent = req.headers('user-agent');
var time = new Date()
var method = req.method;
var baseUrl = req.originalUrl;
var version = 'HTTP/' + req.httpVersion;
var status = res.statusCode;
var allData = agent + time + method + baseUrl + version + status;
fs.appendFile('./log.csv', allData, (err) => {
if (err) throw err;
console.log(allData)
next()
})
});
app.get('/', (req, res) => {
// write your code to respond "ok" here
res.status(200).send('Ok');
});
app.get('/logs', (req, res) => {
// write your code to return a json object containing the log data here
fs.readFile('log.csv', 'utf8', (err, data) => {
});
module.exports = app;
}
答案 0 :(得分:0)
检查this库。您可以将其用于csvtojson转换。
无论如何,请考虑一下,如果csv文件的尺寸增加很多,那么读取整个文件并将其转换为JSON将是一个大问题。考虑一个可扩展解决方案的数据库。