我一直试图解决这个问题超过一周。 我是这个节点/快速环境的新手。
我设法通过本地SQL数据库(MySQL)创建一个包含简单数据的小型Web应用程序。问题是,当我尝试在单个函数中调用多个数据库查询时,我无法获取数据。
我在run.js文件中有这个功能:
...
exports.list= function(req, res){
var id = req.params.id;
req.getConnection(function(err,connection){
var query = connection.query('SELECT * FROM run WHERE id = ?',[id],function(err,rows)
{
if(err){
console.log("Error Selecting : %s ",err );
}
});
var query = connection.query('SELECT * FROM users WHERE run = %?%',[x],function(err,results)
{
if(err){
console.log("Error Selecting : %s ",err );
}
console.log("results: ",results[0]);
res.render('registration',{page_title:"registration",data:rows,data1:results});
});
});
};
...
假设我有2个表,一个用于用户,一个用于运行。 在用户表中,我有一个字段,其中标记了他们参与的运行的名称,我想只返回参加特定比赛的用户。
在我的run.ejs文件中,我有所有比赛的列表,并且每个比赛的按钮都可以看到参与其中的用户,具体如下:
...
<td>
<a class="a-inside dett" href="../run/list/<%=data[i].id%>">List</a>
<a class="a-inside edit" href="../run/edit/<%=data[i].id%>">Modify</a>
<a class="a-inside delete" href="../run/delete/<%=data[i].id%>">Delete</a>
</td>
...
我的list.ejs文件的一部分是(两个表都有一个名称字段):
<div class="page-data">
<form method="post" action="/run/list/<%=data[0].id%>">
<table cellpadding="11" align="center">
<tr>
<td class="label"><%=data[0].name%></td>
<td class="label"><%=data1[0].name%></td>
</tr>
...
在此行中报告错误:
<td class="label"><%=data1[0].name%></td>
我也试图以其他方式改变我的功能,但我总是有错误。
...
var query = connection.query('SELECT * FROM run WHERE id = ?',[id],function(err,rows)
{
if(err){
console.log("Error Selecting : %s ",err );
}
});
var query = connection.query('SELECT * FROM users WHERE run = %?%',[x],function(err,results)
{
if(err){
console.log("Error Selecting : %s ",err );
}
console.log("results: ",results[0]);
});
res.render('registration',{page_title:"registration",data:rows,data1:results});
...
这是来自我的app.js文件:
...
app.get('/run/list/:id', run.list);
...
我需要知道如何将更多查询结果传递给.ejs文件,或者如何直接从.ejs文件本身调用MySQL数据库上的查询。 我希望我尽可能多地提供信息,以便更好地解释我的问题。