Node.js 入门笔记(6) - mysql

node.js 访问mysql

1. mysql模块使用

模块安装:npm install mysql --save

模块引用:var mysql = require('mysql'); 

创建连接池:var pool = mysql.createPool(options);  其中options为

{
	host: '127.0.1',
	user: 'node',
	password: '123456',
	database: 'node',
	port: 3306
}

获得连接

pool.getConnection(function(err, connection){
     //以下代码省略
});

执行sql语句:connection.query(sql,[parameters],[function(err, result){}]);执行返回的数据为JSON格式。

释放链接:connection.release();

2. 实例

定义SQLSt字典变量,存放各种SQL语句。用module.exports方式定义各种方法,其中callback是将数据返回给前端的回调函数。

var mysql = require('mysql');
var $conf = require('../../conf');

var pool = mysql.createPool($conf.mysql);

var SQLStmt = {
    list: 'SELECT  id, eng_name, chn_name, ip, type_flag, vaild_flag, '
          +' date_format(created, "%Y-%m-%d")  as created '
          +'FROM machine order by id',
    listByKey: 'SELECT  id, eng_name, chn_name, ip, type_flag, vaild_flag, '
          +' date_format(created, "%Y-%m-%d")  as created '
          +'FROM machine WHERE id=?',
    add: 'INSERT INTO machine ( eng_name, chn_name, ip, ' 
          +' type_flag, vaild_flag, created) values (?,?,?,?,?,?) ',
    edit: 'UPDATE machine SET eng_name=?, chn_name=?, ip=?, '
          +'type_flag=?, vaild_flag=?, created=? WHERE id=?',
    del: 'DELETE FROM machine WHERE id=?'
};

module.exports = {
    //查询数据
    list: function(req, res, next, callback){
	pool.getConnection(function(err, connection){
            if(connection){
			connection.query(SQLStmt.list, function(err, result){
					callback(res, result);
			});
			connection.release();
		}else{
			//console.log(err);
			callback(res, null);
		}
	});
    },
    //增加
    add: function(req, res, next, callback){
        var obj = req.body;
        if (obj === null){
            console.log("上传数据为空");
            callback(res, null);
        }else{
            pool.getConnection(function(err, connection){
                if(connection){
                    connection.query(SQLStmt.add, [obj.eng_name, obj.chn_name, obj.ip,
                        obj.type_flag, obj.vaild_flag, obj.created], function(err, result){
                            //console.log(err);
                            //console.log(result);
                            callback(res, result);
                    });
                    connection.release();
                }else{
                    console.log(err);
                    callback(res, null);
                }
            });
        }
    },
    //修改
    edit: function(req, res, next, callback){
        var obj = req.body;
        if (obj === null){
            console.log("上传数据为空");
            callback(res, null);
        }else{
            console.log(obj);
            pool.getConnection(function(err, connection){
                if(connection){
                    connection.query(SQLStmt.edit, [obj.eng_name, obj.chn_name, obj.ip, obj.type_flag, 
                        obj.vaild_flag, obj.created, obj.id], function(err, result){
                        //console.log(err);
                        callback(res, result);
                    });
                    connection.release();
                }else{
                    console.log(err);
                    callback(res, null);
                }
            });
        }
    },
    //删除
    del: function(req, res, next, callback){
        var obj = req.body;
        console.log(obj);
        if (obj === null){
            console.log("上传数据为空");
            callback(res, null);
        }else{
            pool.getConnection(function(err, connection){
                if(connection){
                    connection.query(SQLStmt.del, [parseInt(obj.id)], function(err, result){
                        //console.log(err);
                        callback(res, result);
                    });
                    connection.release();
                }else{
                    console.log(err);
                    callback(res, null);
                }
            });
        }
    }
}


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值