以下是我需要回答的关于node.js
的问题。
由于我还是该领域的初学者,实际上可能很容易。
根据我在网上找到的一些文档,我有这个代码(在一个名为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的内容。它可以像人们期望的那样工作。
现在我的问题出现了:
与查询一起:&#39; SELECT * FROM test_table&#39; 我还想添加第二个查询:&#39; SELECT * FROM other_test_table&#39; 我希望能够在test_table之后(或之前)显示other_test_table的内容。 为什么我需要在这两个地方更改代码?
答案 0 :(得分: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>
希望它有所帮助。