2017-07-18 18 views
0

ファイルhelp.jsにカスタムモジュールがあり、関数名はgetfriends(req,res,next,user)です。ユーザーは自分の友人になりたいです。カスタムモジュールデータは正常に返されましたが、表示されません

for (var i = 0; i < users.length; i++) { 
    for (var j = 0; j < docs.length; j++) { 
    if (docs[j].user1 == users[i].username) { 
     if (docs[j].user1 != req.body.user) { 
     friends.push(users[i]); 
     } 
    } else if (docs[j].user2 == users[i].username) { 
     if (docs[j].user2 != req.body.user) { 
     friends.push(users[i]); 
     } 
    } 
    } 

    if (i == users.length-1) { 
    console.log("friends",friends); //it displays my desired result and so I think the return is successfull 
    return(friends); 
    } 
} 

ここでデータを受け取った場所でこれを行い、データは表示されません。

console.log(Help.getfriends(req,res,next,req.session.user)); 

私がやって試してみました: -

somevar = Help.getfriends(req,res,next,req.session.user); 
console.log(somevar); 

モジュールが呼び出されている、それは完璧な結果を表示しています。カスタムモジュールから適切にデータを取得する方法を教えてください。 また、上記の私は、

var Help = require('./help'); 

答えて

1

あなたの機能は非同期です。
あなたがconsole.log(...) <== there is no result yet.
だから私はあなたがconsole.log undefinedと期待しています。

さらに詳しい情報nodejs asyncronous nature

+0

はええけど、私はここでコールバックのシーンを行うことはできませんが、私が試した: - Help.getfriends(reqは、RES、次回、req.session.user、機能(ERR、友人){ はconsole.log(友人); //何も印刷しない )}; このようなことからデータを取得するにはどうしたらよいですか、同じ出力を試してみましたか? – Asim

+0

ほとんどの場合、既存のインフラストラクチャを使用し、他のインフラストラクチャを使用することを理解する必要があります。 – Lazyexpert

関連する問題