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 规范的请点击连接