Javascript NodeJs-错误:发送后无法设置标题&TypeError:req.next不是函数
我试图从数据库mysql中得到一些结果。我正在调用一个方法插入数据库,另一个方法读取我之前插入的内容 我这样做是因为node.js不能同步工作。这是我的代码:Javascript NodeJs-错误:发送后无法设置标题&TypeError:req.next不是函数,javascript,node.js,nodes,Javascript,Node.js,Nodes,我试图从数据库mysql中得到一些结果。我正在调用一个方法插入数据库,另一个方法读取我之前插入的内容 我这样做是因为node.js不能同步工作。这是我的代码: exports.list = function(req, res){ var moduleRows; req.getConnection(function(err,connection){ var query = connection.query('SELECT * FROM questions WHERE m
exports.list = function(req, res){
var moduleRows;
req.getConnection(function(err,connection){
var query = connection.query('SELECT * FROM questions WHERE module_id = ?',[X],function(err,rows)
{
for(var i = 0;i < rows.length;i++){
moduleRows = rows[i];
GetResults(moduleRows);
}
});
var GetResults = function(moduleRows) {
var RightAnswer = 0;
var WrongAnswer1 = 0;
var query = connection.query("SELECT * FROM studentsanswers WHERE Question = '"+moduleRows.question+"' ",function(err,rows2)
{
for(var ii = 0;ii < rows2.length;ii++){
if (rows2[ii].Answer == moduleRows.RightAnswer){
RightAnswer++;
}
else if (rows2[ii].Answer == moduleRows.WrongAnswer1){
WrongAnswer1++;
}
}
var Data = {
question: moduleRows.question,
RightAnswer: moduleRows.RightAnswer,
WrongAnswer1: moduleRows.WrongAnswer1,
NumberOfRightAnswer: RightAnswer,
NumberOfWrongAnswer1 : WrongAnswer1
};
insertResults(Data);
return;
});
}
var insertResults = function(Data) {
var query = connection.query("INSERT INTO statistics set ? ",Data, function(err, rows)
{
PrintResults();
return;
});
}
var PrintResults = function() {
var query = connection.query("SELECT * FROM statistics" ,function(err,rows)
{
res.render('StatisticsByModules',{page_title:"Questions - Node.js",data:rows});
return;
});
}
});
};
我得到的错误是:
错误:发送邮件后无法设置邮件头。
TypeError:req.next不是一个函数在下面的代码中,您调用GetResultsmoduleRows几次,它调用PrintResults几次,在PrintResults方法中发送res.render几次,这是您无法对单个请求执行的。首先,您必须创建数据列表,然后使用查询的数据调用req.render一次
var query = connection.query('SELECT * FROM questions WHERE module_id = ?', [X], function (err, rows) {
for (var i = 0; i < rows.length; i++) { // <== HERE
moduleRows = rows[i];
GetResults(moduleRows);
}
});
你能给出这个模块使用的地方的代码片段吗?你添加了完整的代码了吗?你说你的getting req.next不是一个函数错误,但它甚至没有在代码中使用