如何通过URL在节点js中呈现日志/文本文件?

时间:2019-03-10 16:17:07

标签: node.js routing render

我试图在浏览器中点击特定的URL来查看日志文件。我的本地(/logsFolder/app.log)中有日志文件

我尝试了以下代码: 代码:1

var app = express();
var path = require('path');
var logFile = require('/logs/app');
app.use('/logs',logFile);

它抛出了

之类的错误
Error: Cannot find module '/logs/app'

代码:2

const app = express();
const path = require('path');
const router = express.Router();

 router.get('/logFile', function(req, res){
    console.log("inside logt :");
    res.render('./logs/app.log');
});

任何人都可以帮我解决。

1 个答案:

答案 0 :(得分:1)

您的日志是静态文本文件,而不是JavaScript或json文件,这就是为什么您不需要它的原因。 (代码1)

您也不使用template engine,这就是您的代码2无法正常工作的原因,它无法单独呈现。

您可以将内置的express中间件用于静态文件。

尝试一下:

app.use(express.static('logsFolder'))

现在,您可以通过请求文件名来访问logsFolder的所有内容。例如:http://your-url/app.log

或尝试使用res.sendFile而不是res.render的代码2