将以上查询结果输出到html相应位置
时间: 2024-01-01 07:03:58 浏览: 37
要将查询结果输出到 HTML 页面上,可以使用 Node.js 中的模板引擎,例如 EJS 或者 Handlebars。以下是一个使用 EJS 模板引擎的示例代码,演示如何将查询结果输出到 HTML 页面:
1. 安装 EJS 模板引擎:
```
npm install ejs
```
2. 创建一个名为 `index.ejs` 的 HTML 模板文件,用于显示查询结果:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>查询结果</title>
</head>
<body>
<h1>查询结果</h1>
<ul>
<% for (var i = 0; i < results.length; i++) { %>
<li><%= results[i].name %></li>
<% } %>
</ul>
</body>
</html>
```
以上代码使用了 EJS 中的模板标签 `<% %>` 和 `<%= %>`,用于控制 HTML 页面的显示。
3. 修改 Node.js 代码,使用 EJS 模板引擎渲染 HTML 页面:
```javascript
const mysql = require('mysql');
const ejs = require('ejs');
const http = require('http');
// 创建数据库连接
const connection = mysql.createConnection({
host: 'localhost',
user: 'root',
password: 'password',
database: 'myDatabase'
});
// 连接数据库
connection.connect(function(err) {
if (err) {
console.error('连接数据库失败', err);
return;
}
console.log('连接数据库成功');
// 查询数据
connection.query('SELECT * FROM myTable', function (error, results, fields) {
if (error) {
console.error('查询数据失败', error);
return;
}
console.log('查询数据成功', results);
// 渲染 HTML 页面
const html = ejs.render(`
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>查询结果</title>
</head>
<body>
<h1>查询结果</h1>
<ul>
<% for (var i = 0; i < results.length; i++) { %>
<li><%= results[i].name %></li>
<% } %>
</ul>
</body>
</html>
`, { results: results });
// 创建 HTTP 服务器
const server = http.createServer(function(request, response) {
response.writeHead(200, { 'Content-Type': 'text/html' });
response.write(html);
response.end();
});
// 监听 HTTP 服务器端口
server.listen(3000, function() {
console.log('HTTP 服务器已启动');
});
// 关闭数据库连接
connection.end(function(err) {
if (err) {
console.error('关闭数据库连接失败', err);
return;
}
console.log('关闭数据库连接成功');
});
});
});
```
以上代码使用了 EJS 模板引擎的 `render` 方法,将查询结果和 HTML 模板文件合并成一个 HTML 页面。然后创建一个 HTTP 服务器,将 HTML 页面作为响应发送给客户端。
运行以上代码,访问 `http://localhost:3000`,即可在浏览器中查看查询结果。