首先,确保已在项目中安装了 mysql
模块(可以使用 npm install mysql
命令进行安装)。
const mysql = require('mysql');
// 创建数据库连接池
const pool = mysql.createPool({
host: '数据库主机名',
user: '数据库用户名',
password: '数据库密码',
database: '数据库名',
connectionLimit: 10 // 可选设置连接数限制
});
// 查询数据
function queryData(sql, params, callback) {
pool.getConnection((err, connection) => {
if (err) {
console.error('获取数据库连接失败:', err);
callback(err, null);
return;
}
// 执行查询语句
connection.query(sql, params, (error, results) => {
// 释放连接
connection.release();
if (error) {
console.error('查询数据出错:', error);
callback(error, null);
return;
}
callback(null, results);
});
});
}
// 插入数据
function insertData(sql, params, callback) {
pool.getConnection((err, connection) => {
if (err) {
console.error('获取数据库连接失败:', err);
callback(err, null);
return;
}
// 执行插入语句
connection.query(sql, params, (error, results) => {
// 释放连接
connection.release();
if (error) {
console.error('插入数据出错:', error);
callback(error, null);
return;
}
callback(null, results);
});
});
}
// 更新数据
function updateData(sql, params, callback) {
pool.getConnection((err, connection) => {
if (err) {
console.error('获取数据库连接失败:', err);
callback(err, null);
return;
}
// 执行更新语句
connection.query(sql, params, (error, results) => {
// 释放连接
connection.release();
if (error) {
console.error('更新数据出错:', error);
callback(error, null);
return;
}
callback(null, results);
});
});
}
// 删除数据
function deleteData(sql, params, callback) {
pool.getConnection((err, connection) => {
if (err) {
console.error('获取数据库连接失败:', err);
callback(err, null);
return;
}
// 执行删除语句
connection.query(sql, params, (error, results) => {
// 释放连接
connection.release();
if (error) {
console.error('删除数据出错:', error);
callback(error, null);
return;
}
callback(null, results);
});
});
}
module.exports = {
queryData,
insertData,
updateData,
deleteData
};
通过上述代码,你可以创建一个
db.js
文件来封装数据库操作,并在其他文件中引入并使用这些方法。例如,在另一个文件中编写一个 Express 接口:
const express = require('express');
const app = express();
const db = require('./db'); // 引入封装的数据库操作
app.get('/users', (req, res) => {
const sql = 'SELECT * FROM users';
db.queryData(sql, [], (error, results) => {
if (error) {
// 处理错误
return res.status(500).json({ error: '查询数据出错' });
}
// 返回结果
res.json(results);
});
});
app.post('/users', (req, res) => {
const { name, age } = req.body;
const sql = 'INSERT INTO users (name, age) VALUES (?, ?)';
db.insertData(sql, [name, age], (error, results) => {
if (error) {
// 处理错误
return res.status(500).json({ error: '插入数据出错' });
}
// 返回结果
res.json({ message: '插入成功' });
});
});
// 其他接口逻辑...
app.listen(8080, () => {
console.log('Server is running on port 8080');
});