MSSQL – Nodejs – 未定义不是一个function问题

我一直在尝试使用节点模块在量angular器testing中连接到MSSQL数据库。 我尝试了以下两种方法,但每次我得到undefined不是一个函数或获取无法读取“查询/执行”的属性。

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 } }; 

在我的testing中,我做了以下: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); }); }); }; 

我用非官方的dqlserver,它工作得很好。 我们使用Windows身份validationlogin到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