NodeJS下访问SQL Server
1、下载node-sqlserver
(1)msnodesql (msnodesql-0.2.1-v0.8-x64.msi)下载地址:下载 自行选择与自己系统相符的版本,点击安装。
(2)msnodesql 官方地址:https://github.com/WindowsAzure/node-sqlserver 含wiki 和 疑问解答 。
开始我是通过(1)来下载node-sqlserver的,但是发现在编译build的那一步怎么都没运行通过,我的操作系统是64位的,后来在网上看到一个老外说,不要下载msi来安装,最好通过GitHub网站来下载zip包。
2、打开msnodesql 文件夹下的README.md文件,里面有说到要安装的东西。
3、安装node-gyp,打开命令行,输入命令:
npm install -g node-gyp
4、下载安装python 2.7.6,注意必须是python 2.7.x版本,我开始下载的是3.4.0版本,但是不支持gyp。
官方下载地址:https://www.python.org/download/
5、下载安装Visual C++ 2010 - the Express edition
官方下载地址:http://www.visualstudio.com/zh-cn/downloads/
6、在第一步中下载的node-sqlserver-master.zip解压之后的文件夹放到测试项目下的node_modules目录下,并把文件夹名称“node-sqlserver-master”修改为“msnodesql”。
然后在命令行里进入到\node_modules\msnodesql中,执行如下命令
node-gyp configure
这会为C++源代码创建一个解决方案和项目。成功之后再执行命令:
node-gyp build
编译成功之后,会在msnodesql文件夹的build\Release下生成一个sqlserver.node文件。
7、清除掉build下除“Release\sqlserver.node”文件之外的所有东西。
同时把sqlserver.node文件复制到msnodesql\lib文件夹中,可以打开该文件夹中的sqlserver.native.js文件,里面有调用到sqlserver.node文件。
清除掉msnodesql下的binding.gyp文件,如果不清除,会以为msnodesql没有编译。
8、安装debugging: 在测试项目的目录下新增一个文件“IISNode.yml”,文件的内容为:
loggingEnabled: true devErrorsEnabled: true
如果项目正式上线,请删除此文件。
9、写代码测试数据库连接
var conn_str = "DSN=JobTasks;uid=sa;PWD=DB41Pswd;DATABASE=JobTasks"; var mssql = require('msnodesql'); mssql.open(conn_str, function (err, conn) { if (err) { console.log("Error opening the connection!"); console.log(err); return; } mssql.queryRaw(conn_str, "select * from test", 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] + ' ' + results.rows[i][2]); } } }) mssql.query(conn_str, "INSERT INTO test (ID, Name, [Enable]) VALUES (?,?,?)", ['T0005', 'Test_NodeSql', 'N'], function( e, r ) { if (e) { console.log(e); } }); });