我正在使用Node.js(快速)和MySQL,尝试在同一路径中进行多个查询时遇到了问题。它引发的错误是:
发送后无法设置标题。
我的代码是这样:
router.post('/test', function (req, res, next){
db.query("select COLUMN_NAME from INFORMATION_SCHEMA.COLUMNS where
TABLE_NAME = 'registros';", function (error, results, fields) {
if (error) throw error;
res.render('test', {
columnNames: results
});});
db.query("SELECT * FROM registros", function (error, resp, fields) {
if (error) throw error;
res.render('test', {
dataRegistros: resp
});});
});
我知道这可能是因为它在同一条路线上渲染了两次。进行几个SQL查询并将它们返回到视图中的文件的正确方法是什么?
致谢!
答案 0 :(得分:0)
根据mysql nodejs driver,您可以对其进行设置以合并查询并返回带有结果的数组
创建连接时必须设置此设置:
mysql.createConnection({multipleStatements: true});
然后通过两个查询发出请求
router.post('/test', function (req, res, next) {
var queries = [
"select COLUMN_NAME from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME = 'registros'",
"SELECT * FROM registros"
];
db.query(queries.join(';'), function (error, results, fields) {
if (error) throw error;
res.render('test', {
columnNames: results[0], // First query from array
dataRegistros: resp // Second query from array
});
});
});
但是让我问一个问题,为什么实际上查询所有行并可以从中获取列时,为什么需要查询列名?