2017-04-01 18 views
2

上module.exportsはと定義されていない、私はエラーを取得する:私は必要モジュールmodule1.jsから私のserver.jsに機能loginを取得しようとすると、私のNode.jsアプリのを「ログインが定義されていません」 data機能がnodejs

//module1.js 
module.exports = (data) => { 
    var login = function(data){ 
     console.log(data) 
    } 
    exports.login = login; 
}; 

//server.js 
var test = require(__dirname + '/app/modules/module1.js')(data); 
test.login(); 

答えて

2

ノードが同じオブジェクトをモジュールコード、両方module.exportsexports点の実行を開始します。 module.exportsを再割り当てすると、モジュールから返される別のオブジェクトが指定されます。あなたの場合は、それは関数(data)=>{...}です。 exports変数は、古いモジュールオブジェクトを指し続けます。あなたは両方の機能をエクスポートしたい場合は、exportsオブジェクトに追加する必要があり、

module.exports = (data) => { 
    return {login: function(){ 
     console.log(data) 
    }}; 
}; 

または:

module.exports = (data) => { 
    var login = function(){ 
     console.log(data) 
    } 
    return {login: login}; 
}; 

も短く、このよう:

は、次の必要があります。

+0

ありがとうございます:) –

+0

@PierreNicolas、よろしくお願いします。あなたが私の答えを受け入れることができたことを忘れないでください) –

関連する問題