node封装mysql

封装sql

项目中要使用express,肯定要使用路由进行多模块开发,每一个模块都创建一个sql实例,就太麻烦了,把sql抽离出来,进行一些封装,让代码看起来更加优雅。

1、新建一个config目录

复制代码
目录下是baseData.js和sql.js两个文件

2、basedata.js里面放数据库配置

复制代码
module.exports = {
    host: 'rm-xxxxxx.mysql.zhangbei.rds.aliyuncs.com',	// 连接的服务器
    user: 'jerry',	// 用户名
    password: '@xxxxxx',	// 用户密码
    database: 'pt'	// 选择的库
}

3、sql.js里面用来暴露一个方法

复制代码
var mysql = require('mysql');
var database = require('./config')
//向外暴露方法
module.exports = {
    query : function(sql,params,callback){
        //每次使用的时候需要创建链接,数据操作完成之后要关闭连接
        var connection = mysql.createConnection(database);        
        connection.connect(function(err){
            if(err){
                console.log('数据库链接失败');
                throw err;
            }
         //开始数据操作
         //传入三个参数,第一个参数sql语句,第二个参数sql语句中需要的数据,第三个参数回调函数
        connection.query( sql, params, function(err,results,fields ){
           if(err){
                console.log('数据操作失败');
                throw err;
            }
            //将查询出来的数据返回给回调函数
            callback && callback(results, fields);
            //results作为数据操作后的结果,fields作为数据库连接的一些字段
            //停止链接数据库,必须再查询语句后,要不然一调用这个方法,就直接停止链接,数据操作就会失败
             connection.end(function(err){
                  if(err){
                      console.log('关闭数据库连接失败!');
                      throw err;
                  }
              });
           });
       });
    }
};

每次使用的时候需要创建连接,数据操作完成之后需要关闭连接。因此,我们需要封装一个方法。

3、修改index.js

刚才的index.js就可以直接引入封装好的sql了

复制代码
var db = require("../config/sql")

app.get('/api/get', function (req, res) {
    db.query('SELECT * FROM name', (err, results, fields) => {
        if(err){
            console.log(err);
        }
        res.json({
            method: 'GET',
            data: results
        })
    })
});   

sql就封装完成了。然后就可以进行我们的开发了。

相关推荐
复园电子2 小时前
企业级PDF批量盖章方案选型指南
数据库·pdf
AI-好学者8 小时前
阶段一-图数据库基础与PropertyGraph模型
数据库·rag·knowledge graph·graphrag
其实防守也摸鱼10 小时前
运维--学习阶段问题解答(1)(自测)
linux·运维·服务器·数据库·学习·自动化·命令模式
懒鸟一枚10 小时前
深入理解 Linux 内存、Swap 交换分区与分页机制的关系
java·linux·数据库
龙仔72510 小时前
SQL Server 创建只读账号完整操作(分两种场景:SSMS图形界面 + T-SQL脚本)
数据库·sql·oracle
霁月的小屋10 小时前
生产环境中的事务实践——银行系统上线记(四)
数据库
Database_Cool_11 小时前
AI 应用数据底座首选:阿里云 PolarDB 为大模型 RAG 提供一体化支撑
数据库·阿里云
玖玥拾11 小时前
C# 语言进阶(十五)C# 游戏服务端 MySQL 数据库
服务器·开发语言·网络·数据库·mysql·c#
IvorySQL12 小时前
PG 日报|社区讨论重构 pg_hba 配置文件格式
数据库·人工智能·postgresql·重构·ivorysql
逝水无殇12 小时前
C# 文件的输入与输出详解
开发语言·数据库·后端·c#