如何使用在导入的路由文件中的server.js文件中创建的日志记录中间件

我的盘子里有个令人困惑的问题, 我有一个server.js,这是我的第一个应用程序入口点:

const test = require('./routers/test')

const express= require("express")

const pino = require('pino');
const expresspino = require('express-pino-logger');

const logger = pino({ level: process.env.LOG_LEVEL || 'info' });
const expressLogger = expresspino({ logger });
const app= express();
const port= process.env.port || 4000
app.use(expressLogger);



app.use(express.json());
app.use(test);
app.listen(port,()=>{
    logger.info(`Listening to port ${port}`);
});

如您所见,我有一个记录器(pino),我使用了它,并且工作正常。现在,我需要向此入口点服务器文件添加一个路由文件,问题就在这里。如何在test.js路由文件中传递或使用在server.js中创建的记录器(寻找最佳实践)?

const express = require('express');
const router = new express.Router();

router.get('test',(req,res)=>{
  console.log("THIS CONSOLE.LOG NEEDS TO BE REPLACED WITH LOGGER.INFO");  
  res.send(udsData.getDummyUrlResponse())
});

module.exports = router
achievekey 回答:如何使用在导入的路由文件中的server.js文件中创建的日志记录中间件

最好将记录器提取到一个单独的模块,例如。 logger/index.js,然后将其导入到任何需要的地方。

./ logger / index.js

const pino = require('pino');
const expressPino = require('express-pino-logger');

const logger = pino({ level: process.env.LOG_LEVEL || 'info' });
const expressLogger = expressPino({ logger });

module.exports = { logger,expressLogger };

server.js

const { logger,expressLogger } = require('./logger');

app.use(expressLogger);
...
app.listen(port,()=>{
    logger.info(`Listening to port ${port}`);
});

test.js

const { logger } = require('./logger');
本文链接:https://www.f2er.com/3116758.html

大家都在问