2017-03-16 103 views
0

在jasmine框架中使用webdriverio。需要連接到數據庫,我使用node-mssql來做到這一點。無法使用node-mssql連接到db

var sql = require('mssql'); 

sql.connect("mssql://username:[email protected]/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:無法連接到未定義:1433 - 連接ECONNREFUSED 127.0.0.1:1433 (節點:24585) DeprecationWarning:未處理的承諾拒絕已被棄用,未來,未處理的承諾拒絕將以非零退出代碼終止Node.js進程。「

我想沒有承諾自webdriverio代碼是異步的承諾可能無法正常工作:

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

的錯誤是:「查詢是未定義」

我在做什麼錯?

+0

您是否確定可以使用客戶端工具(例如SQL Server Management Studio和UDL)連接到SQL Server? https://blogs.msdn.microsoft.com/farukcelik/2007/12/31/basics-first-udl-test/ –

回答

0

您是使用npm請求包還是npm request-promise包?我遇到了使用promise版本的類似問題。你使用什麼版本的節點?最新的穩定版本支持您可以用來處理異步代碼的原生JavaScript Promises。我會在早上用一些示例代碼更新這個答案,使用本地承諾實現和請求包。還取決於你的異步代碼塊的位置將有助於確定答案..它是在茉莉花'它'塊或在conf文件或其他地方?