在MySQL查询nodejs中声明全局变量

时间:2016-07-05 07:57:16

标签: mysql node.js

我试图在连接查询中声明一个变量以使其起作用。

var chk = cont.query("SELECT * FROM `points` WHERE name = '"+ usr +"'", function(rows) {
    var row = rows;
    res.send(row);
});

console.log(row[0].amount);

它返回此错误:ReferenceError: row is not defined

如何成功完成此任务。

1 个答案:

答案 0 :(得分:0)

var chk = cont.query("SELECT * FROM `points` WHERE name = '"+ usr +"'", function(rows) {
  var row = rows;
  console.log(row[0].amount)
  res.send(row);
});

您无法在声明它的函数之外访问row变量。即使您在全局(回调之外)声明row,它也不会起作用,因为您发布的代码是异步执行的。查询回调函数在代码console.log(row[0].amount);之后执行,因此您无论如何都不会有行引用。

显然,如果您发布的代码段是完整代码,则根本不需要声明row变量。