中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

nodejs中如何連接數據庫

發布時間:2021-07-20 11:39:40 來源:億速云 閱讀:1000 作者:小新 欄目:web開發

這篇文章主要介紹了nodejs中如何連接數據庫,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

 nodejs連接mysql

1.準備工作

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

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

nodejs中如何連接數據庫

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

nodejs中如何連接數據庫

2.直接連接數據庫

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

host連接數據庫所在的主機名. (默認: localhost)
port連接端口. (默認: 3306)
localAddress用于TCP連接的IP地址. (可選)
socketPath鏈接到unix域的路徑。在使用host和port時該參數會被忽略.
userMySQL用戶的用戶名.
passwordMySQL用戶的密碼.
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模塊
//創建一個connection
var connection = mysql.createConnection({
 host: '192.168.3.3',  //主機
 user: 'root',    //MySQL認證用戶名
 password: 'x5',  //MySQL認證用戶密碼
 database: 'dason_yu',
 port: '3306'     //端口號
});
//創建一個connection
connection.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');
});
//關閉connection
connection.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

nodejs中如何連接數據庫

npm install express –save
npm install express –save-dev

上面代碼表示單獨安裝express模塊,

–save參數表示將該模塊寫入dependencies屬性,

–save-dev表示將該模塊寫入devDependencies屬性。

感謝你能夠認真閱讀完這篇文章,希望小編分享的“nodejs中如何連接數據庫”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

乡城县| 济南市| 汉寿县| 金平| 勃利县| 绩溪县| 榕江县| 碌曲县| 保靖县| 大连市| 赤峰市| 咸丰县| 杨浦区| 新闻| 庆元县| 介休市| 澄城县| 呼图壁县| 锡林浩特市| 鹤壁市| 宁乡县| 托克逊县| 缙云县| 宜兰市| 汕尾市| 岳阳市| 积石山| 乌审旗| 津南区| 蒙自县| 丰台区| 昌都县| 广州市| 明水县| 长顺县| 奉节县| 昆山市| 南郑县| 收藏| 商河县| 青阳县|