[英]Wait for query in Node.js MySQL
When I run this right now the page renders before it can receive the data from MySQL.当我现在运行它时,页面会在它可以从 MySQL 接收数据之前呈现。 The loop goes for all the files in a folder and finds that data in the How can I make it wait for the data to be sent before loading the webpage?
循环遍历文件夹中的所有文件,并在加载网页之前如何让它等待数据发送?
app.get('/explore', function(req,res){
var fileNames = new Array();
pool.getConnection(function(err, connection) {
fs.readdirSync('./files').forEach(file => {
if (err) throw err;
var requester = "SELECT * FROM files WHERE dbname = '" + file + "'";
pool.query(requester, function (err, result) {
if (err) throw err;
fileNames.push(result[0].name);
});
connection.release();
});
});
res.render('explore', { fileNames : fileNames })
});
You can make minor corrections in the code so that it renders as intended.您可以对代码进行小幅修正,使其按预期呈现。
app.get('/explore', function(req,res){
var fileNames = new Array();
pool.getConnection(function(err, connection) {
fs.readdirSync('./files').forEach(file => {
if (err) throw err;
var requester = "SELECT * FROM files WHERE dbname = '" + file + "'";
pool.query(requester, function (err, result) {
if (err) throw err;
fileNames.push(result[0].name);
res.render('explore', { fileNames : fileNames })
//^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
});
connection.release();
});
});
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.