2017-01-25 7 views
0

Ich arbeite mit Nodejs und einige Probleme mit der Anzeige von Variablen. Ich verstehe Javascript asynchron ist, was das Problem sein könnte.Warum ist meine Variable nicht gesetzt

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; 
} 

Hier ist, wo das Problem ist qryUser wird Anzeige als null in der Seite gerendert wird.

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

Ist 'qryUser' eine globale Variable? – Jack

Antwort

0

Stellen Sie sicher, dass Sie qryUser in Rahmen ihrer Verwendung erklärt haben, z.B .:

var qryUser = {}; 

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

Wenn Sie nicht, dann haben Sie ReferenceError: qryUser is not defined bekommen könnte.

+0

es ist nicht enthalten aber ja ich habe es bereits erklärt. Das Problem war, dass die Variable in der gerenderten Seite leer ist. – crod

Verwandte Themen