主题
MariaDB + Node.js 项目
1. 环境准备
- 安装 Node.js(推荐最新版 LTS)
- 安装 MariaDB 数据库并确保运行
- 使用 npm 初始化项目:
bash
npm init -y
- 安装 MariaDB Node.js 驱动:
bash
npm install mariadb
2. 数据库连接
创建数据库连接池,示例代码:
js
const mariadb = require('mariadb');
const pool = mariadb.createPool({
host: 'localhost',
user: 'root',
password: 'your_password',
database: 'testdb',
connectionLimit: 5
});
async function testConnection() {
let conn;
try {
conn = await pool.getConnection();
console.log("数据库连接成功");
} catch (err) {
console.error("连接错误:", err);
} finally {
if (conn) conn.release();
}
}
testConnection();
3. 基本 CRUD 操作示例
- 插入数据
js
async function insertUser(username, email) {
let conn;
try {
conn = await pool.getConnection();
const res = await conn.query("INSERT INTO users(username, email) VALUES (?, ?)", [username, email]);
console.log("插入成功,ID:", res.insertId);
} catch (err) {
console.error(err);
} finally {
if (conn) conn.release();
}
}
- 查询数据
js
async function getUsers() {
let conn;
try {
conn = await pool.getConnection();
const rows = await conn.query("SELECT * FROM users");
console.log(rows);
} catch (err) {
console.error(err);
} finally {
if (conn) conn.release();
}
}
- 更新数据
js
async function updateUserEmail(id, newEmail) {
let conn;
try {
conn = await pool.getConnection();
await conn.query("UPDATE users SET email = ? WHERE id = ?", [newEmail, id]);
console.log("更新成功");
} catch (err) {
console.error(err);
} finally {
if (conn) conn.release();
}
}
- 删除数据
js
async function deleteUser(id) {
let conn;
try {
conn = await pool.getConnection();
await conn.query("DELETE FROM users WHERE id = ?", [id]);
console.log("删除成功");
} catch (err) {
console.error(err);
} finally {
if (conn) conn.release();
}
}
4. 项目结构示例
node-mariadb-project/
├── index.js # 主入口文件
├── db.js # 数据库连接池配置
├── controllers/ # 业务逻辑
├── routes/ # 路由定义(如使用 Express)
└── package.json
5. 结合 Express 框架示例(简单路由)
js
const express = require('express');
const app = express();
app.use(express.json());
app.get('/users', async (req, res) => {
// 查询用户代码,调用 getUsers()
});
app.post('/users', async (req, res) => {
// 新增用户代码,调用 insertUser()
});
app.listen(3000, () => {
console.log('服务启动,监听端口3000');
});
MariaDB 与 Node.js 的结合能帮助你快速构建现代化后端应用,适合开发高性能、可扩展的 Web 服务。