在節點中,我有以下函數/類,它實例化我想用於其他函數/類的記錄器對象。module.exports對象實例的其他應用程序使用
在server.js
,
var loggerUtil = require('./utils/logger'),
logger;
module.exports = function(appInitCb, options) {
start: function() {
// Load .env
dotenv.config({
silent: true
});
// Merge the app configuration with default
options = _.merge({}, cfgDefaults, options);
// Create a logger
logger = loggerUtil.createLogger(options.logger).getLogger();
},
logger: logger
};
在main.js
,
var server = require('./server');
var logger = require(./server').logger;
server.start({}, {});
logger.info('Hello World');
然而,它導致錯誤TypeError: logger.info is not a function
。我猜我的出口方式有問題。任何幫助表示讚賞。
您錯過了一個報價? – adeneo
你真正想實現的是什麼,因爲需要兩次'./server'模塊沒有任何意義。 – Nivesh
此外,您必須先調用start來實例化記錄器對象。如果你想簡單地要求它而不是一次又一次地實例化,那麼你必須檢查記錄器是否已經被實例化。 – Nivesh