node.js 使用 mssql 开源库操作 sqlServer 数据库
--> -->
node.js 连接 ms SqlServer ,你没有看错,就是这样.
我们抛开一切操作系统的歧视, 当你需要用到的数据源存储在 SqlServer 中,那么就会遇到我们今天要说的情况.
一. mssql 下载安装
github地址: https://github.com/patriksimek/node-mssql
mssql 默认使用 Tedious 驱动.
Tedious by Mike D Pilsbury (pure javascript - windows/osx/linux) 默认支持(windows/osx/linux 等系统)
所以你在mac 下用node.js 连接 sqlserver 是没有任何问题的.
另外:Navicat Premium 可以支持连接 SqlServer (方便mac下开发的用户)
安装:
npm install mssql --save
使用:
var sql = require("mssql");
下面共享一个我自己实现的 mssql 连接基类
var config = require("config");
var sql = require("mssql");
var Q = require("q");
var util=require('util');
function _Base() {
}
_Base.prototype._connect = function (callback) {
var defer = Q.defer();
var connection = new sql.Connection({
user: config.mssql.user,
password: config.mssql.password,
server: config.mssql.host,
database: config.mssql.dbname
});
defer.resolve(connection);
return defer.promise.nodeify(callback);
};
_Base.prototype._query = function (sqlstr) {
if (!sqlstr) {
var err = new Error("sql is empty!");
var defer = Q.defer();
return defer.reject(err);
}
//是否打印SQL语句
if (config.debug) {
console.log('[SQL:]', sqlstr, '[:SQL]');
}
return this._connect().then(function (connection) {
return connection.connect().then(function () {
var request = new sql.Request(connection);
return request.query(sqlstr).then(function (recordset) {
connection.close();
return recordset;
}).catch(function (err) {
connection.close();
return err;
});
});
});
};
module.exports = _Base;
这个基类 _Base 里已经在原型链上新增了 _connect 和 _query 方法
对外使用的时候:
第一: 需要继承此基类
第二: 实例化对象后,直接在对象实例上调用 _query(sqlStr) 即可.
_Base 基类里的方法默认实现了 promise 规范.想了解 promise 规范的请点击连接