標籤:檔案名稱 dev github 定義 nav 格式化 localhost root 連結
Node.js與MySQL互動操作有很多庫 felixge/node-mysql 常用
cnpm i mysql --save dev
1、開啟mysql 必須要有,我這裡面用的是wamp。可視化用的是Navicat Premium
var mysql = require(‘mysql‘); //調用MySQL模組var db_config = { host: ‘localhost‘, //主機 user: ‘root‘, //MySQL認證使用者名稱 password: ‘‘, //MySQL認證使用者密碼 port: ‘3306‘, //連接埠號碼 通過php.in可以看到 database: ‘nodetest‘, //資料庫名稱 charset: ‘UTF8_GENERAL_CI‘ //UTF8_GENERAL_CI};var connection;
它的options 有很多
host:主機地址 (預設:localhost)
user:使用者名稱
password:密碼
port:連接埠號碼 (預設:3306)
database:資料庫名
charset:串連字元集(預設:‘UTF8_GENERAL_CI‘,注意字元集的字母都要大寫)
localAddress:此IP用於TCP串連(可選)
socketPath:串連到unix域路徑,當使用 host 和 port 時會被忽略
timezone:時區(預設:‘local‘)
connectTimeout:連線逾時(預設:不限制;單位:毫秒)
stringifyObjects:是否序列化對象(預設:‘false‘ ;與安全相關https://github.com/felixge/node-mysql/issues/501)
typeCast:是否將列值轉化為本地JavaScript類型值 (預設:true)
queryFormat:自訂query語句格式化方法 https://github.com/felixge/node-mysql#custom-format
supportBigNumbers:資料庫支援bigint或decimal類型列時,需要設此option為true (預設:false)
bigNumberStrings:supportBigNumbers和bigNumberStrings啟用 強制bigint或decimal列以JavaScript字串類型返回(預設:false)
dateStrings:強制timestamp,datetime,data類型以字串類型返回,而不是JavaScript Date類型(預設:false)
debug:開啟調試(預設:false)
multipleStatements:是否許一個query中有多個MySQL語句 (預設:false)
flags:用於修改串連標誌,更多詳情:https://github.com/felixge/node-mysql#connection-flags
ssl:使用ssl參數(與crypto.createCredenitals參數格式一至)或一個包含ssl設定檔名稱的字串,目前只捆綁Amazon RDS的設定檔
2、串連mysql
串連mysql的時候有時候會重啟mysql 如何自動連結呢
function handleDisconnect() { connection = mysql.createConnection(db_config); connection.connect(function(err) { if (err) { console.log("進行斷線重連:" + new Date()); setTimeout(handleDisconnect, 2000); //2秒重連一次 return; } console.log("串連成功"); }); connection.on(‘error‘, function(err) { console.log(‘db error‘, err); if (err.code === ‘PROTOCOL_CONNECTION_LOST‘) { handleDisconnect(); } else { throw err; } });}handleDisconnect();
所有代碼如下:
node 連結mysql(自動連結)