国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

nodejs入門教程五:連接數據庫的方法分析

2019-11-19 16:45:15
字體:
來源:轉載
供稿:網友

本文實例講述了nodejs入門教程之連接數據庫的方法。分享給大家供大家參考,具體如下:

參考文章鏈接:  nodejs連接mysql

1.準備工作

在nodejs中沒有mysql模塊,但npm中提供了mysql,所以可以使用npm安裝mysql

命令:npm install mysql, 會生成 node_modules 文件夾 ,如圖

執行后發現報了一個警告,說沒有package.json 這個文件,只需要執行 npm init -f 的命令就會生成一個這個文件

2.直接連接數據庫

mysql.createConnection(Object) 方法與 mysql.createPool(Object)的參數

host 連接數據庫所在的主機名. (默認: localhost)
port 連接端口. (默認: 3306)
localAddress 用于TCP連接的IP地址. (可選)
socketPath 鏈接到unix域的路徑。在使用host和port時該參數會被忽略.
user MySQL用戶的用戶名.
password MySQL用戶的密碼.
database 鏈接到的數據庫名稱 (可選).
charset 連接的字符集. (默認: 'UTF8_GENERAL_CI'.設置該值要使用大寫!)
timezone 儲存本地時間的時區. (默認: 'local')
stringifyObjects 是否序列化對象. See issue #501. (默認: 'false')
insecureAuth 是否允許舊的身份驗證方法連接到數據庫實例. (默認: false)
typeCast 確定是否講column值轉換為本地JavaScript類型列值. (默認: true)
queryFormat 自定義的查詢語句格式化函數.
supportBigNumbers 數據庫處理大數字(長整型和含小數),時應該啟用 (默認: false).
bigNumberStrings 啟用 supportBigNumbers和bigNumberStrings 并強制這些數字以字符串的方式返回(默認: false).
dateStrings 強制日期類型(TIMESTAMP, DATETIME, DATE)以字符串返回,而不是一javascript Date對象返回. (默認: false)
debug 是否開啟調試. (默認: false)
multipleStatements 是否允許在一個query中傳遞多個查詢語句. (Default: false)
flags 鏈接標志.

連接數據庫

var mysql = require('mysql'); //調用MySQL模塊//創建一個connectionvar connection = mysql.createConnection({ host: '192.168.3.3',  //主機 user: 'root',    //MySQL認證用戶名 password: 'x5',  //MySQL認證用戶密碼 database: 'dason_yu', port: '3306'     //端口號});//創建一個connectionconnection.connect(function(err){ if(err){  console.log('[query] - :'+err);  return; } console.log('[connection connect] succeed!');});//執行sql語句var userAddSql = 'insert into user (id,name,money) values(?,?,?)';var param = [3,'ccc',200];/** * 執行所有類型的 sql 語句 * query(sql,arr[],function) * @parms: sql:sql語句 arr: 填充站位符的數組,可以缺省 *   function: 回調函數,result: 結果集,對象組成的數組 */connection.query(userAddSql,param,function(err,rs){ if(err){  console.log('insert err:',err.message);  return; } console.log('insert success');});//關閉connectionconnection.end(function(err){ if(err){  console.log(err.toString());  return; } console.log('[connection end] succeed!');});

3.使用連接池連接數據庫

將下面代碼寫到 httpServer.js 文件中

使用在命令行窗口中 node httpServer.js 運行

var mysql = require('mysql'); //用于創建數據庫連接var pool = mysql.createPool({// 創建數據庫連接池 host : '127.0.0.1' , user : 'root' , password : 'root' , database : 'dason', multipleStatements: true});/** * 獲取數據庫連接 * @parms: err:異常 connnection:數據庫連接對象 * */pool.getConnection(function(err,connection){ if(err){  console.log(err); } /**  * 執行所有類型的 sql 語句  * query(sql,arr[],function)  * @parms: sql:sql語句 arr: 填充站位符的數組,可以缺省  *   function: 回調函數,result: 結果集,對象組成的數組  */ connection.query('SELECT * FROM user',function(err,result){  console.log(result);  connection.release();//將連接放回連接池 });});

結果:

[ RowDataPacket { id: 1, name: 'a', email: 'a@123' }, RowDataPacket { id: 2, name: 'b', email: 'b@123' }, RowDataPacket { id: 4, name: 'd', email: 'd@123' }, RowDataPacket { id: 5, name: 'e', email: 'e@123' }, RowDataPacket { id: 6, name: 'f', email: 'f@123' }, RowDataPacket { id: 3, name: 'c', email: 'c@123' }, RowDataPacket { id: 7, name: 'g', email: 'g@123' } ]

4. end() 與 destroy()、release()

end() 接受一個回調函數,并且會在query結束之后才觸發,如果query出錯,仍然會終止鏈接,錯誤會傳遞到回調函數中處理。

destroy() 立即終止數據庫連接,即使還有query沒有完成,之后的回調函數也不會在觸發。

release() 將連接放回連接池中。

5.package.json

npm install express 

主站蜘蛛池模板:
南城县|
大方县|
菏泽市|
隆子县|
武胜县|
开原市|
柳林县|
威远县|
林口县|
刚察县|
伊金霍洛旗|
民乐县|
龙泉市|
庆城县|
宜川县|
始兴县|
长汀县|
武穴市|
舞阳县|
涞水县|
宁远县|
上杭县|
中牟县|
虎林市|
南投市|
西平县|
息烽县|
扶沟县|
崇义县|
广州市|
灵山县|
沙湾县|
伊宁县|
上犹县|
楚雄市|
榆树市|
万年县|
望江县|
吉隆县|
琼海市|
滕州市|