自学编程快一年了,却第一次写博客。很是惭愧啊。。。闲话少说。简单记录下nodejs模块msnodesql的配置。一来方便自己以后查阅,二来希望能给需要这方面资料的朋友一点帮助
msnodesql是微软为nodejs开发的一款数据库连接驱动。类似于jsp里的JDBC吧。
前提:1.下载安装node.js。(我安装的是v 0.10.35 32位版本,64位版本未测试。貌似新版本v 0.12.7的nodejs无法编译msnodesql,也许是因为其中的node-gyp模块依赖项发生改变的原因吧)
2.安装python。(注意版本,msnodesql对应的python版本是2.7.x。我安装的是2.7.10)
3.安装visual c++2010(vs也行,但要有c++模块),按个express版本就行。
4.安装sql server native client 11.0。这是个单独的模块可以单独下载安装,最初是配合sqlserver2012的。但同样可以连接sqlserver2008。
5.在命令行执行npm install node-gyp@0.9安装node-gyp0.9.6版本的模块(1.0也可以。貌似node-gyp@2.0.2不能编译成功。就我个人而言,全局和本地安装都可以,本地安装需要稍微配置下环境变量,如果错了还望批评指正)
1) 按上述5条安装完毕后,就可以去下载msnodesql源代码了(下载地址:https://github.com/Azure/node-sqlserver)这是个压缩包。解压到nodejs安装目录下并命名为msnodesql即可。
2) cd 进入msnodesql目录,执行node-gyp configure。执行成功的截图:
3)执行成功后,会在msnodesql下出现一个build文件夹。里面会有.sin和vcxproj等文件,都是vc的解决方案和项目文件。连接sqlserver还是需要c++这样的底层代码帮助。
4)接着执行node-gyp build进行编译release版本,截图如下
黄色部分是警告,并非错误。如果出现红色的报错说明编译出现错误。底下出现OK说明可以了。
5)这时会在build文件夹下面生成release文件夹,里面会有一个sqlserver.node文件。这就是编译好的数据库连接的底层代码。将其拷贝到msnodesql下的lib文件夹即可。
6)新建个js文件,写上如下代码 var obj=require('msnodesql'); console.log(obj);。然后node一下。如果msnodesql模块配置成功了应该可以输出其属性方法。
7)附上一段自己写的demo:非常简单:
var sql=require('msnodesql');
var conn_str="Driver={SQL Server Native Client 11.0};Server={.};Database={kaoqin};uid=sa;PWD=123;";
sql.open(conn_str, function (err, conn) {
if (err) {
console.log('发生错误');
}
sql.queryRaw(conn_str, "select * from banbiao", function (err, results) {
if (err) {
console.log(err);
}
else {
for (var i = 0; i < results.rows.length; i++) {
console.log(results.rows[i][0] + results.rows[i][1]);
}
}
})
})
执行上述脚本,可以在命令行里输出前两列的数据。不支持中文表名。当然大家一般也不这么做。。。
这样就完成了配置。以上仅代表个人观点,如果有错误的地方欢迎拍砖。。。。祝我和那个人和大家七夕快乐。。。(会不会也被拍砖)
附:visual c++ 2010 express下载地址:http://www.pc6.com/softview/SoftView_54351.html
微软其实有已经有编译好的msnodesql-0.2.1-v0.8-ia32.msi里面有现成的sqlserver.node。貌似只能用于node是0.8.9的32位版本。e