2015-06-07 65 views
2

我一直試圖使用我的量角器測試中的節點模塊連接到MSSQL數據庫。我嘗試了下面的兩種方法,但是每次我得到undefined都不是函數或者不能讀取「query/execute」的屬性。MSSQL - Nodejs - 未定義不是功能問題

Error: [launcher] Running 1 instances of WebDriver 
[launcher] Error: TypeError: undefined is not a function 
    at exports.config.onPrepare (....\conf\Conf.js:39:28) 

我在conf.js

var HtmlReporter = require('protractor-html-screenshot-reporter'); 
    var mysql = require('../node_modules/mssql'); 


exports.config = { 
    seleniumAddress: 'http://localhost:4444/wd/hub', //desktop 



    allScriptsTimeout: 40000, 
    baseUrl: 'https://myurl.com/#/', 

    // frameworks to use 
    frameworks: 'jasmine', 

//Capabilities to be passed to the webdriver instance. 

    multiCapabilities: [{ 
    'browserName': 'chrome' 
// }, { 
// 'browserName': 'firefox' 

//}, 

// { 
// 'browserName': 'internet explorer' 


    }], 

// Spec patterns are relative to the current working directory. 
    specs: [ 
    '../tests/HomePage.js' 
    ], 


    onPrepare: function() { 
    var sql = require('mssql/'); 
    var config = { 
     server : '*****', 
     user : 'myusername', 
     password : 'pass', 
     database: 'mydb' 
    }; 



    browser.driver.manage().window().maximize(); 
    jasmine.getEnv().addReporter(new HtmlReporter({ 
     baseDirectory: '/MyDirectory/screenshots' 
    })); 



}, 




    jasmineNodeOpts: { 
    showColors: true 
    } 

}; 

在我的測試中定義我的方面,我做了以下內容:test.js

describe (" page test , function() { 


     it('Should add customer', function() { 
      blah blah.... 

      });//This click will create a record in the backend 

     // I am attempting to get the record: 

     function runQuery() { 

    var connection = new sql.Connection(config, function(err) { 


     var request = new sql.Request(connection); // or: var request = connection.request(); 
     request.query('select top 1 as result from customers', function(err, recordset) { 
     // ... error checks 
     console.log("this is the request: " + request); 

     console.dir(recordset); 
    }); 

    }); 

    }; 
+0

鏈接用線條你的錯誤並沒有什麼是我們應該如何知道什麼是功能不正確的,除非你給我們的地方看 – Datsik

+0

更新摘要。謝謝 ! – user2744620

+0

我在Conf文件中包含了mssql連接。我試圖做的是試圖在我的測試中查詢。我沒有任何user.js文件。我在Conf文件中輸入了我所有的用戶名,數據庫,主機信息。 – user2744620

回答

0

我用dqlserver非官方的,它漂亮的工作好。我們使用Windows身份驗證登錄到MSSQL工作室,請使用下面的內容。

var sql = require('node-sqlserver-unofficial'); 
var conn_str = "Driver={SQL Server Native Client 11.0};Server={your server};Database={your database};Trusted_Connection={Yes}"; 

sql.open(conn_str, function (err, conn) { 
    if (err) { 
     console.log("Error opening the connection!"); 
     return; 
    } 
    conn.queryRaw("SELECT TOP 10 * FROM Employee", function (err, results) { 
     if (err) { 
      console.log("Error running query!"); 
      return; 
     } 
     for (var i = 0; i < results.rows.length; i++) { 
      console.log("\n") 
      console.log("Record Info: "); 
      for (var j = 0; j < results.rows.length; j++) { 
       console.log(results.rows[i][j]); 
      } 
     } 
    }); 
}); 

下載MSSQL非官方包從這裏:

https://www.npmjs.com/package/node-sqlserver-unofficial