機能

2016-04-19 5 views
1

import.js機能

exports.getConfig = function() { 
    return api.getConfig(); 

}; 

test.js私はGETCONFIG(呼び出すと、それは の機能を使用しての最後のスニペットで

// Aanmaken lightBridge 
obj = reflector.getObj(); 
console.log(obj); 

// Toon alle lichten 
obj.getConfig().then(function(config) { 
    console.log(config); 
}).done(); 

)を私は持っていたいです出力は変数configにあります。問題は、私が未定義の変数テストをログに記録するときです。

返信configの代わりにconsole.log(config)を実行すると、それは完全に動作します。奇妙に思える。

私が使用したいときの結果は、varia.getConfig()=> configの出力です。

+0

「test」変数はどこにありますか? –

+0

実際には必要ない@HugoWood。代わりにresponse.send(config)を送信する必要があるobj.getConfig()を次に参照してください。(config(config){console.log(config);}最初にconfigの戻り値を取得する必要があります –

+0

私は理解できません申し訳ありません。 'test.js'の7行目のコールバックの中で' response.send(config) 'を実行できませんか? –

答えて

1

テストは外部にない機能にのみ存在します。このようなものを試すことはできますが、汚いかもしれません。

var test; 
    exports.getConfig = function() { 
     api.getConfig(function(err, config) { 
     if (err) throw err; 
     test = config; 
    }); 
+0

変数testは必要ありませんtbh。この方法で修正しようとしました:P それは変数ですか?exports.getConfig()に返すことはできませんか? –

+0

あなたはそれを約束することができ、より良い方法です。 –

+0

私はメインフィールドを更新しました。それでもexports.getConfigの結果ですか?そして、私はそれはobj.getConfig();で別のファイルにあります。したがって、console.log(config)はres.send(JSON.stringify(config))に変更する必要があります。だから私は出力をユーザーに送ることができます。 –

1

同期しているかのように非同期機能を消費しようとしているようです。それをしてはいけない。あなたができることはgetConfigから約束を返すことです。あなたはExpressを使用しているように聞こえるコメントから

const myModule = require('my-module'); 
myModule.getConfig().then(function(config) { 
    console.log(config); 
}); 

exports.getConfig = function() { 
    return api.getConfig(); 
}; 

次に、あなたのモジュールは、このように消費することができます。 Expressを使用してHTTP応答でconfigを送信する場合は、次のようにします。

app.get('/config', function(request, response) { 
    myModule.getConfig().then(function(config) { 
     response.send(config); 
    }); 
}); 
+0

これは私の考えと密接に結びついています。私はこれを私の始動ノードで今受け取る –