2016-09-30 16 views
0

Node.jsの中に同じファイル内内の関数の変数を取得しますが、私は、変数
私はこのコードを試してみました

var haveemail = 0; 

collection.count({email: req.body.email}, function (error, count,callback)     { 
    console.log(count); 
    haveemail = count; 
}); 
console.log(haveemail) 

答えて

0

のNode.jsの値を取得することはできませんが、その直後にcollection.count()開始を意味し、非同期で動作しますconsole.log()コールが開始されます。これは、ほとんどの場合、カウントコールが終了してから変数が設定される前です。

あなたはhaveemail変数が設定された後に起こることを確認するために、コールバックの内側にはconsole.logの呼び出しを移動する必要があります。

var haveemail = 0; 

collection.count({email: req.body.email}, function (error, count,callback) 
{ 
    console.log(count); 
    haveemail = count; 
    console.log(haveemail); 
}); 
+0

私は、あなたに同意実際に私はサイドcollection.countのザッツを値をカウントしたいですなぜ私はhaveemailのカウント値を格納しますが、私はそれを持っていません – Dharmesh7980

+0

@ Dharmesh7980 - あなたが関数の外側でこの変数を使って何をしたいのか - 内部でやるか、 'promises'または' async'ライブラリを使用する必要があります。さもなければ、あなたは時間通りにそれがセットされることを期待することはできません。このガイドをご覧ください。https://blog.risingstack.com/node-hero-async-programming-in-node-js/ –

関連する問題