node+mysql+express接口开发数据库连接池

const DB_MYSQL = require('mysql');

const DB_CONFIG = require('./DBConfig');

/**

* 数据库连接池

* @type {Pool}

*/

const pool = DB_MYSQL.createPool({

    host: DB_CONFIG.database.HOST,

    user: DB_CONFIG.database.USERNAME,

    password: DB_CONFIG.database.PASSWORD,

    database: DB_CONFIG.database.DATABASE,

    port: DB_CONFIG.database.PORT

});

/**

* 通用方法

* @param sql

* @param options

*/

const DB = (sql, options) =>{

    options= (options) ? options:{}

    return new Promise((resolve, reject) => {

        pool.getConnection((error, connection) => {

            if (error) {

                reject(error);

            } else {

                connection.query(sql, options, (error, results, fields) => {

                    //事件驱动回调

                    if (results){

                        resolve(results);

                    }

                    if (error) {

                        reject(error)

}

                });

            }

             //释放连接

            pool.releaseConnection(connection);

        });

    })

};

module.exports = DB;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是Node.js和MySQL实现增删改查接口的示例代码: ```javascript const express = require('express'); const mysql = require('mysql'); const bodyParser = require('body-parser'); const app = express(); // 配置body-parser中间件 app.use(bodyParser.urlencoded({ extended: false })); app.use(bodyParser.json()); // 创建数据库连接池 const pool = mysql.createPool({ host: 'localhost', user: 'root', password: 'password', database: 'test' }); // 查询数据接口 app.get('/api/select', (req, res) => { pool.getConnection((err, connection) => { if (err) { console.log(err); res.send({ code: 400, message: '数据库连接出错' }); } else { connection.query('SELECT * FROM users', (err, results) => { if (err) { console.log(err); res.send({ code: 400, message: '查询数据出错' }); } else { res.send({ code: 200, data: results }); } connection.release(); }); } }); }); // 新增数据接口 app.post('/api/insert', (req, res) => { pool.getConnection((err, connection) => { if (err) { console.log(err); res.send({ code: 400, message: '数据库连接出错' }); } else { const { name, age, gender } = req.body; connection.query('INSERT INTO users (name, age, gender) VALUES (?, ?, ?)', [name, age, gender], (err, results) => { if (err) { console.log(err); res.send({ code: 400, message: '新增数据出错' }); } else { res.send({ code: 200, message: '新增数据成功' }); } connection.release(); }); } }); }); // 修改数据接口 app.put('/api/update', (req, res) => { pool.getConnection((err, connection) => { if (err) { console.log(err); res.send({ code: 400, message: '数据库连接出错' }); } else { const { name, age, gender, id } = req.body; connection.query('UPDATE users SET name = ?, age = ?, gender = ? WHERE id = ?', [name, age, gender, id], (err, results) => { if (err) { console.log(err); res.send({ code: 400, message: '修改数据出错' }); } else { res.send({ code: 200, message: '修改数据成功' }); } connection.release(); }); } }); }); // 删除数据接口 app.delete('/api/delete', (req, res) => { pool.getConnection((err, connection) => { if (err) { console.log(err); res.send({ code: 400, message: '数据库连接出错' }); } else { const { id } = req.body; connection.query('DELETE FROM users WHERE id = ?', [id], (err, results) => { if (err) { console.log(err); res.send({ code: 400, message: '删除数据出错' }); } else { res.send({ code: 200, message: '删除数据成功' }); } connection.release(); }); } }); }); // 监听端口 app.listen(3000, () => { console.log('服务器已启动,端口:3000'); }); ``` 这里使用了`body-parser`中间件来解析POST请求的请求体,使用了MySQL连接池来管理数据库连接,防止频繁创建和销毁连接导致的性能损失。在每个接口中,都先从连接池中获取一个连接,然后执行相应的SQL语句,并根据执行结果返回不同的响应。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值