-2
私は他のモジュールによって共有される機能を定義するモジュールを持っています。これらの関数のいくつかはオーバーライドする必要があります。これは私が考えていたものですが、それは動作しません:魔法exports
の値を変更しませんmodule.exports
を設定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()
ありがとう! – nachocab