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: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)
很奇怪為什么自動停止程序?我的連接數據庫程序如下:
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
相關文章:
1. html - 移動端radio無法選中2. javascript - 我的站點貌似被別人克隆了, google 搜索特定文章,除了域名不一樣,其他的都一樣,如何解決?3. mysql - 請問數據庫字段為年月日,傳進的參數為月,怎么查詢那個月所對應的數據4. php - 微信開發驗證服務器有效性5. mysql - 如何在有自增id的情況下,讓其他某些字段能不重復插入6. 求救一下,用新版的phpstudy,數據庫過段時間會消失是什么情況?7. javascript - 求幫助 , ATOM不顯示界面!!!!8. Python2中code.co_kwonlyargcount的等效寫法9. [python2]local variable referenced before assignment問題10. javascript - vue+iview upload傳參失敗 跨域問題后臺已經解決 仍然報403,這是怎么回事啊?
