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

溫馨提示×

溫馨提示×

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

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

使用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

吉木萨尔县| 平潭县| 崇义县| 黑河市| 沐川县| 福安市| 秦皇岛市| 临潭县| 鄂托克前旗| 垣曲县| 扶沟县| 曲松县| 丹阳市| 伊宁县| 通化县| 康平县| 婺源县| 珠海市| 开化县| 海林市| 清水河县| 平定县| 麻栗坡县| 龙陵县| 田阳县| 开封市| 肃南| 平塘县| 沁阳市| 曲周县| 阳新县| 维西| 荥阳市| 兴海县| 通州市| 荣成市| 贡觉县| 沿河| 互助| 西林县| 阳江市|