繁体   English   中英

使用node.js + functions()连接到MS SQL DB

[英]Connecting to MS SQL DB with node.js + functions()

我正在尝试使用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页面中的各种事件(例如按钮提交)连接到DB。 从按钮中单击我要调用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);
    });
});

}

将代码放入该函数后,该代码将不起作用,数据库连接失败。 谁能建议如何解决此问题? 关于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文件或.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));
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM