gpt4 book ai didi

javascript - 如何将 mysql 结果传递给变量以在模板引擎中呈现

转载 作者:行者123 更新时间:2023-11-29 15:41:42 28 4
gpt4 key购买 nike

我想将 mysql 结果存储到一个变量中,这样我就可以传递给模板引擎。我有多个 mysql 查询,需要将每个查询结果保存到不同的变量中。我正在使用 Node JS 和 Express JS

下面是我的代码(app.js)


var mysql = require('mysql');
var db = mysql.createConnection({
host : 'localhost',
user : 'root',
password : '',
database : 'my_db'
});

db.connect(function(err) {
if (err) throw err;
console.log('Database connected');
});

app.get('/', (req, res) => {
var emp_result;
var task_list_result;

db.query('SELECT * FROM emp', function (error, results, fields) {
if (error) throw error;

emp_result = results;

});

db.query('SELECT * FROM task_list', function (error, results, fields) {
if (error) throw error;

task_list_result;
});

res.render('dashboard',{"emp_res" : emp_result, "task_res" : task_list_result});
});

我期望结果应该存储在变量中;

最佳答案

这里使用 async wait 来处理异步网络调用。如果你想使用回调函数,你应该将它串联起来。

const {promisify} = require('util');
app.get('/', async (req, res) => {
const query = promisify(db.query).bind(db);
const emp_result = await db.query('SELECT * FROM emp')
const task_list_result = await db.query('SELECT * FROM task_list')
res.render('dashboard',{"emp_res" : emp_result, "task_res" : task_list_result});
});

使用 Promise.all 并行调用,因为它们不相互依赖,所以提高了性能,您可以使用下面的代码 -

const {promisify} = require('util');
app.get('/', async (req, res) => {
const query = promisify(db.query).bind(db);
const [emp_result, task_list_result] = await Promise.all([db.query('SELECT * FROM emp'), db.query('SELECT * FROM task_list')]);
res.render('dashboard',{"emp_res" : emp_result, "task_res" : task_list_result});
});

使用回调函数,就像您使用的那样 -

app.get('/', (req, res) => {
db.query('SELECT * FROM emp', function (error, results, fields) {
if (error) throw error;
const emp_result = results;
db.query('SELECT * FROM task_list', function (error, results, fields) {
if (error) throw error;
const task_list_result = results;
res.render('dashboard',{"emp_res" : emp_result, "task_res" : task_list_result});
});
});
});

您可以使用其中任何一种方法,但第二种方法是最好的选择。

关于javascript - 如何将 mysql 结果传递给变量以在模板引擎中呈现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57569338/

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