nodeJS + MSSQL,与db错误的连接:undefined不是函数

时间:2016-01-19 15:21:11

标签: javascript sql sql-server node.js

让我们在开始讨论之前先看看代码:

var sqlDb = require("mssql");
var settings = require("../settings"); 

exports.executeSql = function (sql, callback) { 


var conn = new sqlDb.Connection(settings.dbConfig);
console.log('db.js Send sql-query');
console.log(" ");
conn.connect()              
.then(function () {        
    var req = new sqlDb.Request(conn);
    req.query(sql)              
    .then(function (recordset) {
        callback(recordset);
    })
    .catch(function (err) {
        console.log("here it breaks", err);       
        callback(null, err);    //type error: undefined is not a function
    })
})
.catch(function (err) {
    console.log(err);       
    callback(null, err);    
});  //
};

此函数接收sql语句和回调函数。当我运行代码时,我得到[类型错误:未定义不是函数]。

当我注释掉回调(记录集)时,它没有做任何事情(没有错误,但也没有别的)。所以我认为回调根本不被认为是超出了范围。奇怪的是,错误对象通过相同的回调函数传回,似乎有效。

settings.dbConfig如下所示:

exports.dbConfig = {
user: "username",
password: "pwd",
server: "SERVERNAME",  // not localhost
database: "DB-Name",
port: 1433 
};

我现在很沮丧。有人会非常友好地看看我的代码吗?我根本没有看到错误。

谢谢

编辑: 我像这样调用executeSql:

var db = require("./db");
var sql = "SELECT * FROM myTable";

db.executeSql(sql, function(data, err) { 
if (err) {
  console.log(" Internal Error: error connecting Database", err);
} else {
  console.log("success", data);
}

});

0 个答案:

没有答案