0
我無法將兩個MySQL查詢的結果傳遞給我的模板引擎(EJS)。下面是一個經典的例子:如何在Node.js/Express中引用兩個MySQL查詢w/EJS?
dbConn.query(sqlQuery, function (err, result) {
if (err) throw err;
res.render('index', {
pageTitle: 'Index',
pageID: 'index',
qObj: result
});
});
它就像一個魅力。我的index.ejs頁面接收qObj,我可以迭代行並按照我認爲合適的方式顯示它們。但我想傳遞兩個查詢,像這樣:
res.render('index', {
pageTitle: 'Index',
pageID: 'index',
qObj1: result1,
qObj2: result2
});
但是,這是行不通的:
dbConn.query(sqlQuery1, function (err, result1) {
if (err) throw err;
dbConn.query(sqlQuery2, function (err, result2) {
if (err) throw err;
res.render('index', {
pageTitle: 'Index',
pageID: 'index',
qObj1: result1,
qObj2: result2
});
});
});
這兩種:
var qry1;
var qry2;
dbConn.query(sqlQuery1, function (err, result1) {
if (err) throw err;
qry1 = Object.assign({}, result1);
});
dbConn.query(sqlQuery2, function (err, result2) {
if (err) throw err;
qry2 = Object.assign({}, result2);
});
res.render('index', {
pageTitle: 'Index',
pageID: 'index',
qObj1: qry1,
qObj2: qry2
});
的對象不後的堅持調用dbConn.query()方法。我嘗試製作深層副本不起作用。任何人都可以提出一個解決方法?謝謝。
更新
這裏是我如何解決它。我刪除了下面的代碼的實例:
if (err) throw err;
離開這個:
dbConn.query(sql1, function (err, qry1) {
dbConn.query(sql2, function (err, qry2) {
res.render('index', {
pageTitle: 'Index',
pageID: 'index',
qry1: qry1,
qry2: qry2
});
});
});
它會做,但我爲了它的工作犧牲了異常處理。至少在這種情況下,在同一個對象方法調用中調用一個對象方法似乎也很奇怪。我會嘗試yBrodsky建議的JSON選項,看看是否有幫助。
舊的JSON.parse(JSON.stringify(yourOb)) – yBrodsky