首先,确保已在项目中安装了 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');
- });