Node.js 连接mysql数据库问题
本文介绍了Node.js 连接mysql数据库问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
问题描述:
最近在玩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;
解决方案
不要在回调函数中抛出异常,需要使用nodejs的方式:
callback(e,result,...);
回调函数的第一个参数为Error对象
,如果没发生错误,传入null
这篇关于Node.js 连接mysql数据库问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文