封装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就封装完成了。然后就可以进行我们的开发了。