gpt4 book ai didi

node.js - 将对象分配给node.js中的变量

转载 作者:太空宇宙 更新时间:2023-11-03 23:43:59 25 4
gpt4 key购买 nike

有人可以解释一下为什么我无法将 rows 对象传递给 Clubs 变量吗?

var mysql      = require('mysql');
var connection = mysql.createConnection({
host : 'localhost',
user : 'root',
password : '',
database : 'test'
});
var competition_feed = 'England';
var season_id = 2014;
var clubs = {};

connection.connect();

connection.query('SELECT * FROM clubs WHERE competition_feed=\''+competition_feed+'\' AND season_id='+season_id+';', function(err, rows, fields) {
if (err) throw err;
clubs = rows;
});

console.log(clubs);

connection.end();

我似乎遗漏了一些关于变量和范围的内容。请帮忙:)

最佳答案

你可以,这不起作用的原因是

connection.query(.....)

是异步的。因此,直到事件循环的后期,俱乐部才会设置为行。在您尝试使用它之后。实现您想要的行为的一种方法如下:

var mysql      = require('mysql');
var connection = mysql.createConnection({
host : 'localhost',
user : 'root',
password : '',
database : 'test'
});
var competition_feed = 'England';
var season_id = 2014;
var clubs = {};

connection.connect();

connection.query('SELECT * FROM clubs WHERE competition_feed=\''+competition_feed+'\' AND season_id='+season_id+';', function(err, rows, fields) {
if (err) throw err;
clubs = rows;
logClubs();
});

function logClubs() {
console.log(clubs);
}


connection.end();

关于node.js - 将对象分配给node.js中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17348050/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com