Expressjs:使用mysql结果在foreach之后打开视图。

时间:2015-12-17 21:40:37

标签: mysql express foreach pug

我正在尝试使用mysql查询的结果循环并在该循环中执行新查询。循环结果后,我想用第一个和第二个查询的结果打开一个新视图。

现在我的问题:循环al工作,我可以打开新视图,但是打开视图时我只得到第一个查询的结果和第二个查询的一部分,它在运行第二个查询之前打开视图时间。

我的代码:

 function getActivitiesDate(req,res, rows)
 {
var rows2 = [];
rows.forEach(function getoutput(item) {
    console.log("getActivitiesDate openend");
    connectionpool.getConnection(function(err, connection3) {
        console.log('Trying to connect to activities date');
        if (!err) {
            console.log('Trying to execute query for activities now'),
                connectionpool.query('SELECT * FROM CALENDAR_ACTIVITY WHERE ACTIVITY_ID =' + connection3.escape(item.ACTIVITY_ID),
                    function (err, rows2) {
                        if (err) {
                            console.error(err);
                            res.statusCode = 500;
                            res.send({
                                result: 'error',
                                err: err.code
                            });
                            connection3.release();
                            console.log('It doesnt work error 500');
                        }
                        if (rows2.length == 0) {
                            res.render('index', {title: 'Index - Calendar Activity not found'});
                        }
                        console.log('Show activities + dates');



                      //  connection3.release();
                    });
        } else {
            console.error('CONNECTION error: ', err);
            res.statusCode = 503;
            res.send({
                result: 'error',
                err: err.code
            });
            console.log('It does not work...');
        }
    });

});
console.log('This is the result of rows2Result: ');
console.log(rows2);
res.render('viewUserActivities', {activities:rows, activityDates:rows2 , title: 'Created activities'});

}

“rows”属性目前包含2行(这可能更多或更少,这就是为什么我有“rows.forEach”)但我不知道如何将“rows2”的结果传递给通过foreach循环为每个结果循环后的新视图。

非常感谢任何帮助。我不清楚,或者您需要更多信息,请不要犹豫。

0 个答案:

没有答案