Node.js 連接mysql數(shù)據(jù)庫(kù)問(wèn)題
問(wèn)題描述
問(wèn)題描述: 最近在玩node.js連接mysql數(shù)據(jù)庫(kù),也連接成功,可以增刪改了。但是有一個(gè)問(wèn)題,每當(dāng)拋出異常時(shí),我的程序自動(dòng)停止???并且報(bào)以下錯(cuò)誤:
events.js:160 throw er; // Unhandled ’error’ event ^Error: Connection lost: The server closed the connection. at Protocol.end (D:SoftWareZBJWORKSPACEWebStormWKnode-log-regnode_modulesmysqllibprotocolProtocol.js:109:13) at Socket.<anonymous> (D:SoftWareZBJWORKSPACEWebStormWKnode-log-regnode_modulesmysqllibConnection.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)
很奇怪為什么自動(dòng)停止程序?我的連接數(shù)據(jù)庫(kù)程序如下:
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('查詢參數(shù):'+username); //client為一個(gè)mysql連接對(duì)象 client.query(’select * from user where name='’ + username + ’'’, function (err, results, fields) { // console.log('查詢結(jié)果:'+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;
問(wèn)題解答
回答1:不要在回調(diào)函數(shù)中拋出異常,需要使用nodejs的方式:
callback(e,result,...);回調(diào)函數(shù)的第一個(gè)參數(shù)為Error對(duì)象,如果沒(méi)發(fā)生錯(cuò)誤,傳入null
相關(guān)文章:
1. docker images顯示的鏡像過(guò)多,狗眼被亮瞎了,怎么辦?2. docker網(wǎng)絡(luò)端口映射,沒(méi)有方便點(diǎn)的操作方法么?3. css - 微信小程序點(diǎn)擊展開(kāi),再次點(diǎn)擊收回4. 點(diǎn)擊頁(yè)面就自動(dòng)輸入到mysql.求解5. angular.js - 在ng-option 里使用過(guò)濾器無(wú)效6. javascript - react-native 里面onPress函數(shù)不能直接寫(xiě)帶參數(shù)的函數(shù)7. 我在centos容器里安裝docker,也就是在容器里安裝容器,報(bào)錯(cuò)了?8. Java:密碼包(加密和解密)。無(wú)效的密鑰錯(cuò)誤9. java - springboot 修改默認(rèn)靜態(tài)資源文件讀取路徑10. node.js - angular.js高級(jí)程序設(shè)計(jì)書(shū)本開(kāi)頭配置環(huán)境出錯(cuò),誰(shuí)能給解答一下
