Node.js 连接mysql数据库问题
天蓬老师
天蓬老师 2017-04-17 16:30:19
0
1
481

问题描述:
最近在玩node.js连接mysql数据库,也连接成功,可以增删改了。但是有一个问题,每当抛出异常时,我的程序自动停止???并且报以下错误:

  events.js:160
      throw er; // Unhandled 'error' event
      ^

Error: Connection lost: The server closed the connection.
    at Protocol.end (D:\SoftWare\ZBJWORKSPACE\WebStormWK\node-log-reg\node_modules\mysql\lib\protocol\Protocol.js:109:13)
    at Socket.<anonymous> (D:\SoftWare\ZBJWORKSPACE\WebStormWK\node-log-reg\node_modules\mysql\lib\Connection.js:109:28)
    at emitNone (events.js:91:20)
    at Socket.emit (events.js:185:7)
    at endReadableNT (_stream_readable.js:974:12)
    at _combinedTickCallback (internal/process/next_tick.js:74:11)
    at process._tickCallback (internal/process/next_tick.js:98:9)

很奇怪为什么自动停止程序?
我的连接数据库程序如下:

var mysql = require('mysql');

var db_config = {
    host: '127.0.0.1',
    port:'3306',
    user: 'root',
    password: 'root',
    database: 'test'
};

function connectServer() {
    var client = mysql.createConnection(db_config);
    return client;
}


function selectFun(client, username, callback) {
    //console.log("查询参数:"+username);
    //client为一个mysql连接对象
    client.query('select * from user where name="' + username + '"', function (err, results, fields) {
      // console.log("查询结果:"+results);
        if (err) throw err;

        callback(results);
    });
}

function insertFun(client, username, password, callback) {
    var usr = {name:username,pwd:password};
    client.query('insert into user set ?', usr, function (err, result) {
        if (err) {
            console.log("error:" + err.message);
            return err;
        }
        callback(result);
    });
}
exports.connect = connectServer;
exports.selectFun = selectFun;
exports.insertFun = insertFun;
天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复(1)
刘奇

不要在回调函数中抛出异常,需要使用nodejs的方式:

callback(e,result,...);
回调函数的第一个参数为Error对象,如果没发生错误,传入null

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!