亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

使用node.js如何實現操作MySQL數據庫

發布時間:2020-10-30 14:43:43 來源:億速云 閱讀:130 作者:Leah 欄目:開發技術

本篇文章為大家展示了使用node.js如何實現操作MySQL數據庫,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

基本使用

node.js上,最受歡迎的mysql包就是mysql模塊。

npm install mysql

然后在js腳本里面直接引用進來

var mysql   = require('mysql');

配置mysql的數據庫連接。

var connection = mysql.createConnection({
 host   : 'ip',
 user   : '用戶名',
 password : '密碼',
 database : 'dbname'
});
connection.connect();

這樣就拿到了一個連接。

然后就可以愉快的進行各種curd操作了。

node.js對數據庫的curd都在query這個方法里面。這點和ado.net有很大的區別。

你的所有的操作,都從query的回調函數里面獲得結果

connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {
 if (error) throw error;
 console.log('The solution is: ', results[0].solution);
});

連接池操作

在單機軟件中,我們之間使用簡單獲得一個連接,然后就行了。

但是在面向互聯網的web服務里面,頻繁的創建和關閉連接,是很消耗服務器性能的。

于是我們的前輩們發明了各種池子。比如多線程操作中的線程池,游戲開發中的對象池,當然還包括數據庫操作的連接池。

創建連接池:

var mysql = require('mysql');
var pool = mysql.createPool({
 connectionLimit : 連接池數量,
 host      : 'ip地址',
 user      : '賬號',
 password    : '密碼',
 database    : '數據庫名稱'
});

然后就是和上文一樣的curd操作

//從連接池中獲取一個連接
pool.getConnection(function(err, connection) {
  if (err) throw err; // not connected!
 
  // 使用這個連接curd
  connection.query('SELECT something FROM sometable', function (error, results, fields) {
    // 使用完之后,記得把這個連接放到連接池里面去
    connection.release();
 
    // Handle error after the release.
    if (error) throw error;
 
  });
});

如果你的程序要退出,請把調用連接池的end()方法。不然程序會卡在后臺,一直退出失敗。

封裝成Promise

在ES6中,可以直接用和C#的await一樣的語法去調用js的異步函數。

但是要求這個函數必須是async聲明和返回值是Promise對象。

query = function (sql, arr, callback) {
  console.log('獲取一個連接');
  return new Promise(function (resolve, reject) {
    pool.getConnection(function (err, connection) {
      if (err) {
        reject(err);// not connected!
      } else {
        console.log('開始查詢');
        connection.query(sql, arr, function (error, results, fields) {
          connection.release();
          console.log('連接已經釋放,返回結果');

          if (error) reject(error);
          // callback && callback(results, fields)
          resolve({
            rows: results,
            fields: fields
          })
        });
      }


    });
  })


}

簡單的用法到這里就結束了。當然還有更高級的用法,比如MySQL的Cluster操作等。有興趣的話,可以去研究,因為我目前用不到這種功能,所有就不往后去深究了。

上述內容就是使用node.js如何實現操作MySQL數據庫,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

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

AI

读书| 大同县| 清徐县| 阜平县| 石台县| 安顺市| 肇州县| 温州市| 沅陵县| 黎城县| 望城县| 读书| 连云港市| 铜鼓县| 桐梓县| 外汇| 清河县| 梅河口市| 德庆县| 吉木乃县| 汕尾市| 青岛市| 富锦市| 文水县| 扬州市| 吉安市| 浮山县| 旅游| 改则县| 道孚县| 新邵县| 喀喇沁旗| 威宁| 绥江县| 庐江县| 盈江县| 微山县| 二手房| 汉寿县| 金平| 霍山县|