1、建立數(shù)據庫連接:createConnection(Object)方法
該方法接受一個對象作為參數(shù),該對象有四個常用的屬性host,user,password,database。與php中鏈接數(shù)據庫的參數(shù)相同。屬性列表如下:
host: 連接數(shù)據庫所在的主機名. (默認: localhost)
port: 連接端口. (默認: 3306)
localAddress: 用于TCP連接的IP地址. (可選)
socketPath: 鏈接到unix域的路徑。在使用host和port時該參數(shù)會被忽略.
user: MySQL用戶的用戶名.
password: MySQL用戶的密碼.
database: 鏈接到的數(shù)據庫名稱 (可選).
charset: 連接的字符集. (默認: 'UTF8_GENERAL_CI'.設置該值要使用大寫!)
timezone: 儲存本地時間的時區(qū). (默認: 'local')
stringifyObjects: 是否序列化對象. See issue #501. (默認: 'false')
insecureAuth: 是否允許舊的身份驗證方法連接到數(shù)據庫實例. (默認: false)
typeCast: 確定是否講column值轉換為本地JavaScript類型列值. (默認: true)
queryFormat: 自定義的查詢語句格式化函數(shù).
supportBigNumbers: 數(shù)據庫處理大數(shù)字(長整型和含小數(shù)),時應該啟用 (默認: false).
bigNumberStrings: 啟用 supportBigNumbers和bigNumberStrings 并強制這些數(shù)字以字符串的方式返回(默認: false).
dateStrings: 強制日期類型(TIMESTAMP, DATETIME, DATE)以字符串返回,而不是一javascript Date對象返回. (默認: false)
debug: 是否開啟調試. (默認: false)
multipleStatements: 是否允許在一個query中傳遞多個查詢語句. (Default: false)
flags: 鏈接標志.
還可以使用字符串連接數(shù)據庫例如:
var connection = mysql.createConnection('mysql://user:pass@host/db?debug=true&charset=BIG5_CHINESE_CI&timezone=-0700');
2、結束數(shù)據庫連接end()和destroy()
end()接受一個回調函數(shù),并且會在query結束之后才觸發(fā),如果query出錯,仍然會終止鏈接,錯誤會傳遞到回調函數(shù)中處理。
destroy()立即終止數(shù)據庫連接,即使還有query沒有完成,之后的回調函數(shù)也不會在觸發(fā)。
3、創(chuàng)建連接池 createPool(Object) Object和createConnection參數(shù)相同。
可以監(jiān)聽connection事件,并設置session值
pool.on('connection', function(connection) {
connection.query('SET SESSION auto_increment_increment=1')
});