有没有办法在定义繁琐的配置(Node.js)时指定数据库?

时间:2017-09-14 01:13:10

标签: sql-server node.js database object tedious

根据Tedious Getting Started Guide,连接数据库的方式如下:

var Connection = require('tedious').Connection;

      var config = {
        userName: 'test',
        password: 'test',
        server: '192.168.1.210',

        // If you're on Windows Azure, you will need this:
        options: {encrypt: true}
      };

      var connection = new Connection(config);

      connection.on('connect', function(err) {
        // If no error, then good to go...
          executeStatement();
        }
      );

建立连接后,可以执行以下查询:

var Request = require('tedious').Request;

  function executeStatement() {
    request = new Request("select 42, 'hello world'", function(err, rowCount) {
      if (err) {
        console.log(err);
      } else {
        console.log(rowCount + ' rows');
      }
    });

    request.on('row', function(columns) {
      columns.forEach(function(column) {
        console.log(column.value);
      });
    });

    connection.execSql(request);
  }

这就像魅力一样,但我想将请求更改为以下内容:

 request = new Request("select * from table", function(err, rowCount) {

显然,这不起作用,因为配置对象中没有定义数据库,因此SQL无法识别该表。

我尝试将以下内容添加到配置对象中:

database: 'mydb'

我仍然收到以下错误:

  

无效的对象名称'表格'。

在配置对象中定义数据库的正确方法是什么?

2 个答案:

答案 0 :(得分:1)

配置对象需要如下所示:

var config = {
  userName: 'username',
  password: 'password',
  server: 'server',
  options: {
      database: "databaseName",
  }
};

答案 1 :(得分:0)

我正在使用Tedious从NodeJS连接到本地SQL Server。上面的配置对我不起作用,原因是如何指定用户名/密码。多个选项对象有点令人困惑。

最后,它起作用了:

var config = {
  server: 'localhost',
  options: {
    database: "randomDB"
  },
  authentication: {
    type: 'default',
    options: {
      userName: 'randomUser',
      password: 'randomPassword'
    }
  }
}