時間吧,總是這么湊巧,在我學習【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的使用。
越努力,越幸運。