gpt4 book ai didi

mysql - Node.js - 从数据库 (mysql) 检索数据 - 延迟

转载 作者:行者123 更新时间:2023-11-29 08:58:56 25 4
gpt4 key购买 nike

我正在使用 Node.js 的 mysql 驱动程序从数据库加载数据。 https://github.com/felixge/node-mysql

我想将数据加载到数组中。当我将数据加载到数组中时 - 出现延迟并且数组为空。

我想检索数据,然后写入行 - console.log("END QUERY"); console.log(用户);

var users = [];

client.query(
'SELECT * FROM users',
function selectCb(err, results, fields) {
if (err) {
throw err;
}

if (results.length > 0) {
var reader = results[0];
console.log("ID: " + reader['id']); //ADD string - 'ID: 1'
users = [reader['id']]
}
}
);

console.log("END QUERY");

console.log(users);

输出:

写行:

END QUERY
[]
ID: 1

最佳答案

这就是 Node 的工作方式——使用异步模型。首先,您编写的所有代码都会执行,包括 console.log(users)。此时,users 是一个空数组。

只有在执行完所有命令式指令后,回调才会被触发 - 例如您的 selectCb 函数。只有此回调运行后,您才能访问用户

实际上,这就是 Node 的全部要点和目的,理解这里的基础知识非常重要。您可以在以下位置阅读更多相关信息: http://shinetech.com/thoughts/articles/139-asynchronous-code-design-with-nodejs-

其他人也推荐了 Ryan Dahl 介绍 Node 的这段视频: http://www.youtube.com/watch?v=jo_B4LTHi3I

在您的具体情况下,我会将 console.log("END QUERY")console.log(users) 行移至 的正文中>selectCb 函数。

关于mysql - Node.js - 从数据库 (mysql) 检索数据 - 延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9152199/

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