第七章:Nodejs + 模块mssql 链接sqlserver数据库方法实测记录

来源:互联网 发布:js换行符分隔字符串 编辑:程序博客网 时间:2024/06/10 08:26

Nodejs + 模块mssql 链接sqlserver数据库方法实测记录,记录时间2016年8月16日星期二。

这些天,因为需要nodejs链接sqlserver数据库这些方法,所以在网上找了下资料并实测了下。

百度了下有很多方法,其中实测了两种。

第一种:使用模块msnodesql,这个模块需要特定的环境去生成才可以使用。

前期准备如下:

1.安装Node.js(官网上下载)

2.安装node-gyp(安装好node.js后进入到npm目录,执行npminstall node-gyp)

3.安装python2.7.x(WWW.PYTHON.ORG上可以下载,注意下载2.7.X版本)

4.安装VisualC++ 2010 (vs2010中必须有C++模块,也可以单独下载Microsoft

5.安装SQLServer Native Client 11.0

6. 将下载好的msnodesql文件夹复制到node.js的node_modules路径下,然后生成步骤如下:

1.node-gyp configure

2.node-gyp build 

以上就是第一种方法的大概步骤,经过实测,不仅麻烦,而且我还行不通。不知道是不是我电脑环境问题,反正我到了node-gypbuild 这一步就一直编译不过,甚至我还从网上下载别人编译好的来用,还报错说什么鬼文件找不到。之后我就放弃了这种方法。

 

第二种:使用模块mssql,这个比较简单,直接调用就好了。我也参照了下网上一些大神的方法,用了他们的例子测试了下。竟然

报错 { [ConnectionError: Failed to connect to10.81.36.167:1433 in 15000ms] name: ‘ConnectionError’, message: ‘Failed toconnect to 10.81.36.167:1433 in 15000ms’, code: ‘ETIMEOUT’ }

后来我根据报错,在网上看到有个大神提出两种链接方法的比较,一种会报错一种不会,还好他贴出了两种方法的代码才解决。以下是那位大神的方法截图。



下面开始记录Nodejs + 模块mssql 链接sqlserver数据库方法

 

一 安装mssql模块

npm install mssql

二 封装连接数据库代码

db.js:

var mssql = require('mssql');var db = {};//执行sql,返回数据.db.sql = function (sql, callBack) {    var connection = new mssql.Connection("mssql://sa:test@192.168.1.100:2001/mytest", function (err) {        if (err) {            console.log(err);            return;        }        var ps = new mssql.PreparedStatement(connection);        ps.prepare(sql, function (err) {            if (err){                console.log(err);                return;            }            ps.execute('', function (err, result) {                if (err){                    console.log(err);                    return;                }                ps.unprepare(function (err) {                    if (err){                        console.log(err);                        callback(err,null);                        return;                    }                    callBack(err, result);                });            });        });    });};module.exports = db; 


三 测试
dbtest.js 

var sqlserver = require('./db.js');sqlserver.sql('select * from dbo.t_Carpark',function(err,result){    if (err) {        console.log(err);        return;    }    console.log(result);});




0 0