2016-11-14 31 views
0

這是一個關於node.js的問題,我需要回答。 因爲我還是這個領域的初學者,所以實際上可能很容易。Node.js&ejs,如何處理2個表格?

以下一些文件,我在網上找到的,我有這樣的代碼(文件名爲index.js內):

app.get('/db', function (request, response) { 
    pg.connect(process.env.DATABASE_URL, function(err, client, done) { 
    client.query('SELECT * FROM test_table', function(err, result) { 
     done(); 
     if (err) 
     { console.error(err); response.send("Error " + err); } 
     else { 
     response.render('pages/db', {results: result.rows}); 
     } 
    }); 
    }); 
}); 

,我也有這等文件名爲db.ejs:

<!DOCTYPE html> 
<html> 
<head> 
</head> 

<body> 

<div class="container"> 
<h2>Database Results</h2> 

<ul> 
    <% results.forEach(function(r) { %> 
     <li><%= r.id %> - <%= r.name %></li> 
    <% }); %> 
</ul> 

</div> 

</body> 
</html> 

通過兩者之間的一些魔力,我可以顯示test_table的內容。它按照人們的預期工作。

現在,這裏是我的問題:

隨着查詢:'SELECT * FROM TEST_TABLE' 我還想添加第二個查詢:'SELECT * FROM other_test_table' ,我想能夠在test_table之後(或之前)顯示other_test_table的內容。 我該如何改變這兩個地方的代碼?

回答

0

你可以試試:

app.get('/db', function (request, response) { 
    pg.connect(process.env.DATABASE_URL, function(err, client, done) { 
     client.query('SELECT * FROM test_table', function(err, result1) { 
      if (err) { 
       done(); 
       console.error(err); 
       response.send("Error: " + err.message); 
      } else { 
       client.query('SELECT * FROM other_test_table', function(err, result2) { 
        done(); 
        if (err) { 
         console.error(err); 
         response.send("Error: " + err.message); 
        } else { 
         response.render('pages/db', { 
          results1: result1.rows, 
          results2: result2.rows 
         }); 
        } 
       }); 
      } 
     }); 
    }); 
}); 

db.ejs

<!DOCTYPE html> 
<html> 
<head> 
</head> 

<body> 

<div class="container"> 
<h2>Database Results</h2> 

<ul> 
    <% results1.forEach(function(r) { %> 
     <li><%= r.id %> - <%= r.name %></li> 
    <% }); %> 
</ul> 

<ul> 
    <% results2.forEach(function(r) { %> 
     <li><%= r.id %> - <%= r.name %></li> 
    <% }); %> 
</ul> 

</div> 

</body> 
</html> 

希望它能幫助。

+0

是的。正如人們所期望的那樣,這確實符合你的建議。 非常感謝。 – Michel

+0

經過(而且)花了一些時間處理像這篇文章中的問題。我做了我自己的用例來獲得Node.js的一些練習。 因爲其他人可能會遇到同樣的麻煩,所以我認爲讓我有權訪問我所做的事情,希望在某些時候對其他人有用。如果你有興趣看看這裏(https://primes-garden.herokuapp.com/)。底層有一個開發者鏈接(How That Works?)。 – Michel