2017-02-26 11 views
-2

Ich habe ein Modul, das Funktionen definiert, die von anderen Modulen gemeinsam genutzt werden. Einige dieser Funktionen müssen außer Kraft gesetzt werden. Das ist, was ich dachte, aber es funktioniert nicht:Wie überschreiben Sie eine Methode in Node.js?

// shared_module.js 
module.exports = { 
    alternativeFun() { 
     exports.doSomething() 
     sharedFun() 
    }, 
    sharedFun() { 
     console.log('shared') 
    } 
} 

// alternative_module1.js 
module.exports = { 
    doSomething() { 
     console.log('alternative 1') 
    } 
} 

// alternative_module2.js 
module.exports = { 
    doSomething() { 
     console.log('alternative 2') 
    } 
} 

// main.js 
const shared1 = require('./shared_module') 
shared1.doSomething = require('./alternative_module1').doSomething 
shared1.alternativeFun() 

const shared2 = require('./shared_module') 
shared2.doSomething = require('./alternative_module2').doSomething 
shared2.alternativeFun() 

Antwort

1

module.exports Einstellung nicht auf magische Weise den Wert von exports ändern. Sie müssen es auch dem gleichen Wert zuweisen (module.exports = exports = ...), wenn Sie es in den Funktionen Ihres Moduls verwenden möchten.

+0

hab es geschafft, danke! – nachocab

Verwandte Themen