getaddrinfo ENOTFOUND在node.js中使用繁琐时

55ooxyrt  于 5个月前  发布在  Node.js
关注(0)|答案(3)|浏览(79)

我正在尝试使用Tedious连接到本地SQL Express服务器,但始终无法

failed Error: getaddrinfo ENOTFOUND

字符串
我是不是用错地址了?

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

  var config = {
    userName: 'sa',
    password: 'mypassword',
    server: 'LOCALHOST\\SQLEXPRESS',
  };

  var connection = new Connection(config);

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

but5z9lq

but5z9lq1#

“不支持主机名\示例名的Microsoft样式字符串。”-pekim
我在github上发布了同样的问题,这里是完整的答案:https://github.com/pekim/tedious/issues/118

oipij1gg

oipij1gg2#

正如@Cotten所说,但这里有一个例子。
必须启用TCP/IP连接,并且端口不应包含在服务器字符串中,它必须以数值形式进入配置。

var config = {  
    server: 'your_ip_address',
    authentication: {
        type: 'default',
        options: {
            userName: 'your_username',
            password: 'your_password'
        }
    },
    options: {
        database: 'your_database',
        port: 1234  //your port number
    }
};

字符串

smdncfj3

smdncfj33#

你可以在连接时选择使用port和instance name。我发现使用instance name更方便(容易获取信息)。在配置的选项部分,只需注解掉port(如果你有)并添加“instanceName”键和instace name值,如下所示:

var config = {  
    server: 'localhost',
    authentication: {
        type: 'default',
        options: {
            userName: 'sa', 
            password: 'password' 
        }
    },
    options: {
        encrypt: false,
        database: 'test',
        //port: 4966,
        instanceName: "INSTANCA1"
    }
};

字符串
前面提到的https://github.com/pekim/tedious/issues/118也是如此,但我一开始忽略了它,花了半个小时寻找解决方案。

相关问题