无法使用node-mssql

时间:2017-03-16 03:52:57

标签: sql-server jasmine webdriver-io

将webdriverio与jasmine框架一起使用。需要连接到数据库,我使用node-mssql来做到这一点。

var sql = require('mssql');

sql.connect("mssql://username:password@localhost/database").then(function() {
    new sql.Request().query('select * from mytable').then(function(recordset) {
        console.dir(recordset);
    }).catch(function(err) {
        // ... query error checks 
    });
}); 

上面的代码给出了错误:" UnhandledPromiseRejectionWarning:未处理的承诺拒绝(拒绝ID:1):ConnectionError:无法连接到undefined:1433 - connect ECONNREFUSED 127.0.0.1:1433 (node:24585)弃用警告:不推荐使用未处理的拒绝承诺。将来,未处理的承诺拒绝将使用非零退出代码终止Node.js进程。"

我尝试没有承诺,因为webdriverio中的代码是异步的,承诺可能无法正常工作:

var connection = sql.connect(config); //config has all the parameters
  var request = new sql.Request();
  request.query('select * from myTable');

错误是:"查询未定义"

我做错了什么?

1 个答案:

答案 0 :(得分:0)

您使用的是npm请求包还是npm请求承诺包?我使用promise版本遇到了类似的问题。您使用的是什么版本的节点?最新的稳定版本支持可用于处理异步代码的本机JavaScript Promises。我将在早上使用本机承诺实现和请求包的一些示例代码更新此答案。同样取决于您的异步代码块的位置将有助于确定答案..是在茉莉花'它'块中还是在conf文件中或其他地方?