2017-06-10 42 views
0

我有一個簡單的NodeJS記錄器模塊打印的時間,內容和消息「記錄的NodeJS模塊錯誤的上下文

module.exports = { 
    init: (c) => { 
    const config = c || {}; 
    const context = config.context || 'ROOT'; 
    console.log('test', c, config); 
    return { 
     d: (message) => { 
     console.log(`${new Date()} [${context}] Debug - ${message}`); 
     }, 
     i: (message) => { 
     console.log(`${new Date()} [${context}] Info - ${message}`); 
     }, 
     w: (message) => { 
     console.log(`${new Date()} [${context}] Warn - ${message}`); 
     }, 
     e: (message) => { 
     console.error(`${new Date()} [${context}] Error - ${message}`); 
     } 
    } 
    } 
} 

現在,我需要從我的應用程序內的其他模塊該模塊。

const logger = require('./logger').init('Database');const logger = require('./logger').init('WebSocket');

但是從我的控制檯上的每個登錄某些原因,背景是「根」,但console.log('test', c, config);與右c和配置多次調用。

我知道模塊就像在一個應用程序範圍內的單例,但它被稱爲... 任何想法?

回答

1

因爲當你調用require('./logger').init('Database'),你的配置等於「數據庫」所以config.context不確定context默認爲「根」。

+0

OMG是的,你是對的:-) – Pascal

1

您調用init方法的方式格式錯誤。

你應該寫例如:

const logger = require('./logger').init({context:'Database'});