2017-01-25 15 views
0

私はnodejsで作業中で、変数を表示する際にいくつかの問題が発生しています。私はJavaScriptが非同期である可能性があることを理解しています。変数が設定されていない理由

function getQryUser(user) { 
    if (user.chkUserStatus) { 
    if (user.lWaterLabID == 0) { 
     qryUser.sLabName = "Site Admin"; 
     qryUser.sLabID = 0; 
    } else if (user.lWaterlabID == -9999) { 
     qryUser.sLabName = "Uber Admin"; 
     qryUser.sLabID = "0"; 
    } else { 
     request.query("Some Query", function(err, rows) { 
     if (err) { 
      throw err; 
     } else { 
      console.log('user found', rows); 
      setValue(rows[0]); 
     } 
     }); 
    } 
    } 
} 

function setValue(value) { 
    qryUser = value; 
} 

レンダリング中のページでqryUserがnullとして表示される問題があります。

router.get('/secure', function(req, res) { 
    console.log('find user', user); 
    getQryUser(user); 
    console.log('hello from get route', qryUser); 
    res.render('secure/index',{ 
    user: user, 
    qryUser: qryUser 
    }); 
}); 
+0

'qryUser'はグローバル変数ですか? – Jack

答えて

0

例えば、あなたがその使用の範囲内qryUserを宣言していることを確認します。:

var qryUser = {}; 

function getQryUser(user) { 
    if (user.chkUserStatus) { 
    if (user.lWaterLabID == 0) { 
     qryUser.sLabName = "Site Admin"; 
     // ... 
} 

あなたは、あなたがReferenceError: qryUser is not definedを取得される可能性がありますしていない場合。

+0

それは含まれていませんが、私はすでにそれを宣言しています。問題は、レンダリングされたページで変数が空であることでした。 – crod

関連する問題