如何在 Nodejs 中的多个文件中使用一个库
How to use a library in multiple files in Nodejs
我想使用 Winston 登录我的 nodejs express 项目。在我的主文件(server.js)中,我有以下代码:
const winston = require('winston');
winston.level = process.env.LOG_LEVEL
winston.log('info', 'Hello log files!')
我也想在其他文件中使用这个库,所以我是否必须将这两行添加到我想使用它的每个文件中,或者有更好的方法来做到这一点。
您可以创建 customWinston.js 文件:
let winston = require('winston');
winston.level = process.env.LOG_LEVEL
winston.log('info', 'Hello log files!')
exports.customWinston = winston;
然后需要您的自定义温斯顿:
let customWinston = require('./customWinston').customWinston;
可以这样导出调用。
const winston = require('winston');
winston.level = process.env.LOG_LEVEL
module.exports = winston;
在其他文件中
const winston = require('/path/to/winston');
winston.log('blah blah');
或者,将其设为全局并调用它。 (不推荐)
const winston = require('winston');
winston.level = process.env.LOG_LEVEL
global.WINSTON = winston;
...
// other file
WINSTON.log('blah')
执行此操作的首选方法是将自定义记录器添加到 winston 对象:
var winston = require('winston');
// add a new logger to the winston object
winston.loggers.add('logger1', {
console: {
level: 'silly',
colorize: true,
label: 'Console One'
},
file: {
filename: '/path/to/your/logfile.log'
level: process.env.LOG_LEVEL
}
}
按照上面的代码段所述设置记录器后,您可以 "get" 应用程序中任何其他文件中的记录器:
var winston = require('winston');
// get your preconfigured logger
var myLogger = winston.loggers.get('logger1');
// start logging!
myLogger.error('FooError');
myLogger.log('warn', 'Exiting application');
也是这种方式,在winston文档中是这样描述的:Winston Docs
我想使用 Winston 登录我的 nodejs express 项目。在我的主文件(server.js)中,我有以下代码:
const winston = require('winston');
winston.level = process.env.LOG_LEVEL
winston.log('info', 'Hello log files!')
我也想在其他文件中使用这个库,所以我是否必须将这两行添加到我想使用它的每个文件中,或者有更好的方法来做到这一点。
您可以创建 customWinston.js 文件:
let winston = require('winston');
winston.level = process.env.LOG_LEVEL
winston.log('info', 'Hello log files!')
exports.customWinston = winston;
然后需要您的自定义温斯顿:
let customWinston = require('./customWinston').customWinston;
可以这样导出调用。
const winston = require('winston');
winston.level = process.env.LOG_LEVEL
module.exports = winston;
在其他文件中
const winston = require('/path/to/winston');
winston.log('blah blah');
或者,将其设为全局并调用它。 (不推荐)
const winston = require('winston');
winston.level = process.env.LOG_LEVEL
global.WINSTON = winston;
...
// other file
WINSTON.log('blah')
执行此操作的首选方法是将自定义记录器添加到 winston 对象:
var winston = require('winston');
// add a new logger to the winston object
winston.loggers.add('logger1', {
console: {
level: 'silly',
colorize: true,
label: 'Console One'
},
file: {
filename: '/path/to/your/logfile.log'
level: process.env.LOG_LEVEL
}
}
按照上面的代码段所述设置记录器后,您可以 "get" 应用程序中任何其他文件中的记录器:
var winston = require('winston');
// get your preconfigured logger
var myLogger = winston.loggers.get('logger1');
// start logging!
myLogger.error('FooError');
myLogger.log('warn', 'Exiting application');
也是这种方式,在winston文档中是这样描述的:Winston Docs