使用node.js +函数连接到MS SQL数据库()

我正尝试使用node.js连接到MS SQL Server数据库。 我安装了msnodesql模块以用于此任务。 我可以通过以下代码连接到数据库:

var sql = require('msnodesql'); var util = require('util'); // var connStr = "Driver={SQL Server Native Client 11.0};Server=myySqlDb,1433;Database=DB;UID=Henry;PWD=cat;"; var query = "SELECT * FROM GAData WHERE TestID = 17"; sql.open(connStr, function(err,conn){ if(err){ return console.error("Could not connect to sql: ", err); } conn.query(query,function(err,results){ if (err){ return console.error("Error running query: ", err); } console.log(results); console.log(results.length); for (var i = 0; i <= results.length; i++){ util.inspect(results[i]); } }); }); 

然而,我的目标是从HTML页面的各种事件(如button提交)连接到数据库。 从button单击我想要调用一个node.js函数来查询数据库的特定属性,如下所示:

从HTML:

 <br /><button type="submit" id="continue" onClick="verifyEmail($('#email').val())">Continue</button> 

从脚本文件:

 function verifyEmail(email){ var mQuery = "'EXEC WebUserRecovery '" + email + "'"; sql.open(conn_str, function (err, conn) { if (err) { console.log("Error opening the connection!\r\n" + err); return; } connection.query(mQuery,function(err,results){ if (err){ return console.error("Error running query: ", err); } alert(results); }); }); } 

放入函数内部的代码不起作用,数据库连接不成功。 任何人都可以build议如何解决这个问题? 在msnodesql上没有好的文档…

服务器端 .js文件(Node.js):

 var sql = require('msnodesql'); var util = require('util'); var connStr = "Driver={SQL Server Native Client 11.0};Server=myySqlDb,1433;Database=DB;UID=Henry;PWD=cat;"; var query = "SELECT * FROM GAData WHERE TestID = 17"; // Load the http module to create an http server. var http = require('http'); // Configure our HTTP server to respond with Hello World to all requests. var server = http.createServer(function (request, response) { sql.open(connStr, function(err,conn){ if(err){ return console.error("Could not connect to sql: ", err); } conn.query(query,function(err,results){ if (err){ return console.error("Error running query: ", err); } response.writeHead(200, {"Content-Length": results.length}); response.writeHead(200, {"Content-Type": "application/json"}); response.end(results); }); }); }); // Listen on port 8000, IP defaults to 127.0.0.1 server.listen(8000); // Put a friendly message on the terminal console.log("Server running at http://127.0.0.1:8000/"); 

客户端 .js文件或内联脚本应该像使用jQuery ajax调用一样:

 var request = $.ajax({ url: "http://127.0.0.1:8000/", type: "GET", dataType: "json" }); request.done(function(dataRcvd) { alert(JSON.stringify(dataRcvd)); });