Node.js 基于路由的日志请求方法
对于我的NodeJs项目,我使用Express路由器。我创建了一个路由器.jsNode.js 基于路由的日志请求方法,node.js,express,Node.js,Express,对于我的NodeJs项目,我使用Express路由器。我创建了一个路由器.js module.exports = (app) => { app.use('/', require('./routes/home.js')); app.use('/contact', require('./routes/contact.js')); app.use('/imprint', require('./routes/imprint.js')); }; const express
module.exports = (app) => {
app.use('/', require('./routes/home.js'));
app.use('/contact', require('./routes/contact.js'));
app.use('/imprint', require('./routes/imprint.js'));
};
const express = require('express');
const router = express.Router();
router.get('/', (req, res) => {
res.render('contact', { // render contact.hbs
title: 'Contact' // pass in some template variables
});
});
module.exports = router;
在我的app.js中,我需要这个文件require('./server/router.js')(app)代码>。调用路由时,例如/contact
我需要contact.js
module.exports = (app) => {
app.use('/', require('./routes/home.js'));
app.use('/contact', require('./routes/contact.js'));
app.use('/imprint', require('./routes/imprint.js'));
};
const express = require('express');
const router = express.Router();
router.get('/', (req, res) => {
res.render('contact', { // render contact.hbs
title: 'Contact' // pass in some template variables
});
});
module.exports = router;
在router.get
中,我可以使用console.log(req.method)
来记录HTTP方法。目前,我将不得不在所有路由器文件中记录这一点。有没有可能把代码放在像这样的地方
module.exports = (app) => {
console.log(req.method); // Log the request method for all routes
app.use('/', require('./routes/home.js'));
app.use('/contact', require('./routes/contact.js'));
app.use('/imprint', require('./routes/imprint.js'));
};
请提供不安装中间件的解决方案。我知道有很多日志记录程序。您可以在node.js中使用下面的HTTP请求日志记录程序中间件,而无需在代码中添加任何内容。只需在主应用程序中配置它,它就能完成所有工作
如果要避免安装中间件并使用console.log
,可以按如下方式更改代码:
module.exports = (app) => {
app.use((req, res, next) => {
console.log('Request Type:', req.method);
console.log('Time:', Date.now());
next();
})
app.use('/', require('./routes/home.js'));
app.use('/contact', require('./routes/contact.js'));
app.use('/imprint', require('./routes/imprint.js'));
};
如果您没有指定路由,但有next
回调,那么它将首先执行您的日志代码,然后执行匹配的路由(如果有)。您可以在的“使用中间件”部分找到更多详细信息。这真的很好,但我想我只需要这个请求日志,所以您知道不安装中间件的方法吗?