node.js + mssql 簡易封裝操作


時間吧,總是這么湊巧,在我學習【node.js】還沒幾天,我的 Microsoft SQL Server Management Studio 18 就歇菜了,至於怎么歇菜的吧....它可能的意思就是想讓我換電腦了... 所以為了解決問題,就寫了這個小東西滿足需求;
....咳咳咳....

回歸正題,開始最簡易的封裝數據操作。

首先老樣子,先安裝:

安裝方法

npm install mssql

引入依賴

///引入依賴
const mssql = require('mssql');

配置Config

其實這里的config,和后端程序配置的web.config基本是一個意思。(可忽略 0.0

code:

///引入依賴
const mssql = require('mssql');

//方法對象
const units = {
  sql: function (sql, callback) {
    ///連接池
    new mssql.ConnectionPool(units.config())
      .connect()
      .then(pool => {
        let ps = new mssql.PreparedStatement(pool);
        ps.prepare(sql, err => {
          if (err) {
            console.log(err);
            return;
          }
          ps.execute('', (err, result) => {
            if (err) {
              console.log(err);
              return;
            }
            ps.unprepare(err => {
              if (err) {
                console.log(err);
                callback(err, null);
                return;
              }
              callback(err, result);
            });
          });
        });
      }).catch(err => {
        console.log("Database Connection Failed! Bad Config:", err);
      });
  },
  /*
 * 默認config對象
 * @type {{user: string, password: string, server: string, database: string, pool: {min: number, idleTimeoutMillis: number}}}
 */
  config: function () {
    return {
      user: 'sa',                       //SQL Server 的登錄名
      password: '123456',               //SQL Server 的登錄密碼
      server: 'localhost',              //SQL Server 的地址
      database: 'sale',                 //數據庫名稱
      port: 1433,                       //端口號,默認為1433
      pool: {
        min: 0,                         //連接池最小連接數,默認0
        max: 10,                        //連接池最大連接數,默認10
        idleTimeoutMillis: 3000         //設置關閉未使用連接的時間,單位ms默認30000
      },
      /*--其他屬性--*/
      // connectionTimeout:             //連接timeout,單位ms 默認 15000
      // requestTimeout:                //請求timeout,單位ms默認15000
      // parseJSON:                     //將json數據集轉化成json obj 
    }
  }
}

module.exports = units;

此上面這段代碼就可以封裝為一個命名為:helper.js(名字隨意)。

然后就可以在其他的js里面來調用這個封裝好的‘方法’:

const helper = require('./helper');

接下來就是寫最基本的 參數化  批量:insert丶select丶update 丶delete :

const helper = require('./helper');
/*
 * 查詢所有
 * @param tableName
 * @param result
 */
helper.sql('select * from dbo.tableName where 1 = 1', function (err, result) {
    if (err) {
        console.log(err);
        return;
    }
    console.log('data :', result);
});

/*
 * 修改
 * @param updateObj     修改內容(必填)
 * @param whereObj      修改對象(必填)
 * @param tableName     表名
 * @param callBack(err,recordset)
 */
helper.sql("update dbo.tableName set name = @updateObj where id = @whereObj", err => {
    if (err) {
        console.log("error:" + err);
        return;
    } else {
        console.log('Ok!');
    }
});

/*
 * 添加
 * @param addObj    添加對象(必填)
 * @param tableName 表名
 * @param callBack(err,recordset)
 */
helper.sql("insert into dbo.tableName(obj)values(@addObj)", err => {
    if (err) {
        console.log("error:" + err);
    } else {
        console.log("Ok!");
    }
})

/*
 * 刪除
 * @param whereObj    刪除對象(必填)
 * @param tableName 表名
 * @param callBack(err,recordset)
 */
helper.sql("delete dbo.tableName where 1 = 1 and id = @whereObj", err => {
    if (err) {
        console.log("error:" + err);
    } else {
        console.log("Ok!");
    }
})

以上就實現了 最簡易的node.js + mssql的使用。

 

越努力,越幸運。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM