Node.js & ejs,如何处理2张表?
Node.js & ejs, how to handle 2 tables?
这是一个关于 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 的内容。正如人们所期望的那样工作。
现在我的问题来了:
连同查询:'SELECT * FROM test_table'
我还想添加第二个查询:'SELECT * FROM other_test_table'
我希望能够在 test_table 之后(或之前)显示 other_test_table 的内容。
我需要如何更改这两个地方的代码?
你可以试试:
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>
希望对您有所帮助。
这是一个关于 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 的内容。正如人们所期望的那样工作。
现在我的问题来了:
连同查询:'SELECT * FROM test_table' 我还想添加第二个查询:'SELECT * FROM other_test_table' 我希望能够在 test_table 之后(或之前)显示 other_test_table 的内容。 我需要如何更改这两个地方的代码?
你可以试试:
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>
希望对您有所帮助。