node.js操作mysql 回调返回值

来源:互联网 发布:网络之纵横天下txt下载 编辑:程序博客网 时间:2024/06/05 21:59

刚入门node.js的朋友可能不知道node.js操作mysql 是如何回调返回值得,我给你大家介绍介绍

简介和安装 测试MySQL 认识一下Connection Options MYSQL CURD 插入 更新 查询 删除 Nodejs 调用带out参数的存储过程,并得到out参数返回值 结束数据库连接两种方法和区别 连接池Pooling connections 创建 其它连接池配置选项 释放 使用示例 断线重连 其它…

Node.js与MySQL交互操作有很多库,具体可以在 https://www.npmjs.org/search?q=mysql 查看。

我选择了felixge/node-mysql,用的人比较多,先随大溜看看它的使用,暂时没有太过纠结于各库之间的执行性能问题,对其它库有研究的筒子也可以分享一下性能要求较高时的选择^_^!

地址:https://github.com/felixge/node-mysql
https://www.npmjs.org/package/mysql

安装
npm install mysql
安装mysql中间件

示例

//设置连接数据库参数var mq = require("mysql");var db_conf = {    host:'192.168.1.32',    post:'3306',    user:'test',    password:'test',    database:'opensips_news'}var conn;//连接数据库function handleDisconnect(){    conn = mq.createConnection(db_conf);    conn.connect(function(err){        if(err)        {//如果连接错误           console.log('error when connecting to db:', err);             setTimeout(handleDisconnect, 2000);           }});//监听数据库连接错误conn.on('error',function(err){       console.log('db error', err);       if(err.code = 'PROTOCOL_CONNECTION_LOST')       {        handleDisconnect();       }       else       {        throw err;       }});}handleDisconnect();//打开连接mysql//查询 无回调function getAllUser(id){    var sql = 'select * from subscriber where id > '+ conn.escape(id);    conn.query(sql,function(err,results){         console.log(results);         return results;//此处return没用 是没返回值的    });}/** 查询 有回调 获得domain type默认domain value 默认为空 var dataStr = JSON.stringify(results);将json对象装换成json数据*/function getAlldomain(type,value,callback){    var sql = 'select id,domain from domain ';    var option = new Array();    var dataStr= "";    conn.query(sql,function(err,results){        //处理查询结果        if(results){            for(var i = 0; i < results.length; i++)            {                //option[i] = {'label':results[i].domain,'value':results[i].domain};                //console.log(results[i].domain);                option.push({'label':results[i].domain,'value':results[i].domain});            }        }        callback(err, option);//回调函数返回option数组    });}/** 插入数据库 有回调函数 有返回值的 新增用户 注册用户 username:用户名 domain:域名 password:密码 email_address:邮箱*/function reg_user(datas,callback){      //设置插入的值      var post    = {                                 username: datas.username,                                  password:datas.password,                                 email_address:datas.email,                                 ha1:"",                                 ha1b:""                            };         var sql     = "insert into subscriber set ? ";//插入数据库的sql        //新增用户,插入数据库        var user_id = 0;        var query = conn.query(sql,post,function(err,results){                //处理返回的结果,如果新增用户成功                if(results)                {                    console.log(results);                    user_id  = results.insertId;                }                console.log('新增用户id:'+user_id);                callback(err, user_id);//回调函数 返回user_id        })        //console.log(query.sql);}/**    调用方法 获取查询后的值 需要用到回调函数    callback = function(){};//回调函数    getAlldomain('domain','',callback);*/getAlldomain('domain','',function(err,results){        //results为调用方法的回调的成功的返回值        var datas = {};        datas.domian       = results;        result.status      = 1;        result.data        = datas;        res.send(result);});
0 0
原创粉丝点击