gpt4 book ai didi

mysql - 使用node.js从mysql查询大量数据时网页渲染失败

转载 作者:行者123 更新时间:2023-11-30 23:15:14 26 4
gpt4 key购买 nike

我正在尝试从 node.js 查询 mysql 数据库并将其结果显示在网页上。当 mysql 表的大小很小时,我的代码有效。但是当 mysql 表的大小很大时,大约 4GB ,那么执行查询需要相当长的时间。虽然数据是从 mysql 表中提取的,(我在打印出来时可以在 Node 控制台中看到),网页不呈现数据。我假设发生了一些超时,因此它不会呈现任何内容,只是说“网页不可用”。

这是我的代码:

    var connection = mysql.createConnection({
host: 'localhost',
user: 'xxxx',
password: 'xxxxxx',
debug: true
});
connection.connect(function (err) {
if (err) {
console.log('error in connection is :' + err);
res.send(500);
} else {

connection.query(query, function (err1, rows) {
// connected! (unless `err` is set)
if (err1) {
console.log('error' + err1);
var model = [{
"error": "No data matching the query"
}];
res.json(model);

} else {
console.log('result of query' + rows);
res.json(rows);
}

});
}

});

我正在使用 dust.js 来呈现数据。

关于我遗漏的任何指示都会有所帮助。

最佳答案

您可能没有遗漏太多,这可能是您提到的超时。这实际上取决于您希望客户如何表现:

1)你可以增加客户端的超时时间(也许是内部应用,增加可以吗?也许它是一个XHR对象,你可以控制超时时间,让它在用户忙的时候“在后台”等待页面上的其他内容?)。

2) 您可以更改客户端代码以在后台执行此操作,并在获得结果后更新 DOM。

3) 您可以在服务器端对结果进行排队,立即向客户端返回一个“作业 ID”并让客户端对其进行轮询。或者可以使用“ cometd ”并在工作完成后向客户端发送通知。

正如我所说,您确实需要定义您希望客户的行为方式。

关于mysql - 使用node.js从mysql查询大量数据时网页渲染失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18192472/

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