H5(HTML5)和数据库是Web开发中两个不同层面但紧密协作的技术组件。
- H5 是前端技术:负责用户界面展示、交互逻辑,运行在浏览器中。
- 数据库是后端存储:负责数据的持久化存储、查询和管理,通常运行在服务器上。
它们本身不能直接通信,必须通过后端服务(如 Node.js、Java、Python、PHP 等)作为桥梁进行交互。
基本架构关系
[用户浏览器]
↓ 发送 HTTP 请求(含 H5 页面 + JavaScript 发起的 API 调用)
[Web 服务器 / 后端服务]
↓ 处理业务逻辑,执行数据库操作
[数据库]
↑ 返回数据
[后端服务]
↑ 返回 JSON 数据
[用户浏览器]
↑ H5 页面接收数据并动态渲染
H5 如何与数据库交互?
H5 页面本身无法直接连接数据库(出于安全考虑),必须通过以下方式间接操作:
前端 H5 + JavaScript 发起 AJAX/Fetch 请求
<!-- H5 页面 --> <button id="loadData">加载数据</button> <div id="result"></div> <script> document.getElementById('loadData').addEventListener('click', async () => { const response = await fetch('/api/data'); // 请求后端接口 const data = await response.json(); document.getElementById('result').innerText = JSON.stringify(data); }); </script>
后端接收请求,查询数据库
以 Node.js + Express + MySQL 为例:
// 后端代码
const express = require('express');
const mysql = require('mysql');
const app = express();
const db = mysql.createConnection({
host: 'localhost',
user: 'root',
password: 'password',
database: 'mydb'
});
app.get('/api/data', (req, res) => {
db.query('SELECT FROM users', (err, results) => {
if (err) {
res.status(500).json({ error: '数据库查询失败' });
return;
}
res.json(results); // 返回 JSON 数据给前端
});
});
app.listen(3000, () => console.log('Server running on port 3000'));
数据库存储数据
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50),
email VARCHAR(100)
);
INSERT INTO users (name, email) VALUES ('张三', 'zhangsan@example.com');
常见数据库类型选择
| 类型 | 适用场景 | 常见产品 |
|---|---|---|
| 关系型数据库 | 结构化数据、事务要求高 | MySQL、PostgreSQL、SQLite |
| 非关系型数据库 | 高并发、灵活 schema、缓存 | MongoDB、Redis、Cassandra |
| 实时数据库 | 聊天、实时协作 | Firebase Realtime Database |
H5 本地存储 vs 数据库
| 特性 | H5 本地存储(LocalStorage/IndexedDB) | 数据库(后端) |
|---|---|---|
| 存储位置 | 浏览器本地 | 服务器 |
| 容量 | 较小(5-10MB) | 几乎无限 |
| 持久性 | 用户清除浏览器数据会丢失 | 持久化,安全可靠 |
| 共享性 | 仅限当前浏览器 | 多用户共享 |
| 安全性 | 低,易被 XSS 攻击 | 高,可通过权限控制 |
| 适用场景 | 缓存、离线数据、用户偏好设置 | 用户数据、交易记录、核心业务数据 |
✅ 建议:敏感数据、多用户共享数据必须存后端数据库;临时缓存、离线功能可用 H5 本地存储。
最佳实践
- 不要在前端暴露数据库连接信息(如主机名、用户名、密码)。
- 使用 HTTPS 保护前后端通信。
- 后端做数据验证和过滤,防止 SQL 注入等攻击。
- 分页、索引优化提升数据库查询性能。
- 使用 ORM 或查询构建器(如 Sequelize、TypeORM、Prisma)简化数据库操作。
示例完整流程
- 用户在 H5 页面输入用户名和密码,点击登录。
- JavaScript 将表单数据通过
fetch发送到后端/api/login。 - 后端验证数据,查询数据库中的用户记录。
- 如果匹配成功,后端返回用户信息和 token。
- H5 页面接收响应,保存 token,跳转至主页。
首发原创文章,作者:世雄 - 原生数据库架构专家,如若转载,请注明出处:https://idctop.com/article/477407.html



