为什么我的变量没有被设置

时间:2017-01-25 19:37:12

标签: javascript node.js

我正在使用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
  });
});

1 个答案:

答案 0 :(得分:0)

确保您已在其使用范围内声明qryUser,例如:

var qryUser = {};

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

如果还没有,那么你可能会得到ReferenceError: qryUser is not defined