2017-01-25 1 views
0

nodejs로 작업하면서 변수를 표시하는 데 문제가 발생했습니다. 자바 스크립트가 비동기 적이라는 사실을 알고 있습니다.내 변수가 설정되지 않는 이유

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로 표시됩니다. 당신은 당신이 ReferenceError: qryUser is not defined을 받고 수 있습니다하지 않은 경우

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"; 
     // ... 
} 

을 예컨대을 확인하십시오.

+0

포함되어 있지 않지만 그렇습니다. 이미 선언했습니다. 문제는 렌더링 된 페이지에서 변수가 비어 있다는 것입니다. – crod

관련 문제