Javascript 重用模块中定义的对象
我用两个不同的文件定义了一个记录器,并使用如下方式: main.jsJavascript 重用模块中定义的对象,javascript,Javascript,我用两个不同的文件定义了一个记录器,并使用如下方式: main.js var config = require('./config'); var log = require('./services/logger')(config); log.logger.info("Info Logging"); var config = {}; var PRODUCTION = process.env.NODE_ENV === "production"; config.log = { level :
var config = require('./config');
var log = require('./services/logger')(config);
log.logger.info("Info Logging");
var config = {};
var PRODUCTION = process.env.NODE_ENV === "production";
config.log = {
level : 'info'
};
module.exports = config;
module.exports = function (config) {
var winston = require('winston');
var logger = new(winston.Logger)({
transports : [new(winston.transports.Console)({
level : config.log.level
})]
});
var winstonStream = {
write : function (message, encoding) {
logger.info(message.slice(0, -1));
}
};
return {
logger : logger,
expressStreamLogger : winstonStream
};
};
config.js
var config = require('./config');
var log = require('./services/logger')(config);
log.logger.info("Info Logging");
var config = {};
var PRODUCTION = process.env.NODE_ENV === "production";
config.log = {
level : 'info'
};
module.exports = config;
module.exports = function (config) {
var winston = require('winston');
var logger = new(winston.Logger)({
transports : [new(winston.transports.Console)({
level : config.log.level
})]
});
var winstonStream = {
write : function (message, encoding) {
logger.info(message.slice(0, -1));
}
};
return {
logger : logger,
expressStreamLogger : winstonStream
};
};
logger.js
var config = require('./config');
var log = require('./services/logger')(config);
log.logger.info("Info Logging");
var config = {};
var PRODUCTION = process.env.NODE_ENV === "production";
config.log = {
level : 'info'
};
module.exports = config;
module.exports = function (config) {
var winston = require('winston');
var logger = new(winston.Logger)({
transports : [new(winston.transports.Console)({
level : config.log.level
})]
});
var winstonStream = {
write : function (message, encoding) {
logger.info(message.slice(0, -1));
}
};
return {
logger : logger,
expressStreamLogger : winstonStream
};
};
问题
在另一个文件中,我想使用记录器(log.logger
)。每次需要使用记录器时,是否应重复以下要求
var config = require('./config');
var log = require('./services/logger')(config);
log.logger.info("Info Logging");
您还可以让记录器将该配置作为默认配置导入,并且仅在没有提供其他配置的情况下使用它。您确实需要有多个记录器实例吗?