Невозможно подключиться к Microsoft SQL Server с помощью Node.js, mssql и express - PullRequest
0 голосов
/ 12 апреля 2019

Я пытаюсь изучить Node.js и создал простой проект для запроса локальной базы данных. Но мне не удалось найти сообщение об ошибке экземпляра.

Я проверил, что службы SQL Server работают в services.msc

services.msc picture

Я подтвердил, что TCP / IP включен

configurations manage pic

Я пробовал с именем пользователя и паролем, а также без него. Я подключаюсь к localdb в SQL Server Management Studio как (localdb)\v11.0 и ниже скриншот свойств

image of SQL Server connection properties

Что я делаю неправильно? Каким должно быть действительное имя пользователя и пароль? Каким должно быть имя сервера?

const sql = require('mssql');

// config for your database
const config = {
    user: 'mywindows username',
    password: 'my windows password',
    server: '(localdb)\\v11.0', 
    database: 'test',
    options: {
        encrypt: true
      } 
};
console.log('starting sql');

var connection = new sql.connect(config, function(err) {
    console.log(err);
    var request = new sql.Request(connection); 
    request.query('select * from employees', function(err, recordset) {
       if(err)      // ... error checks 
            console.log('Database connection error');

    console.dir("User Data: "+recordset);
    });
});
sql.close();
console.log('ending sql');    
});

app.listen(3002, () => {
    console.log('Listening on port 3002');})

Ниже приведено сообщение об ошибке

{ConnectionError: Не удалось найти экземпляр (localdb) - getaddrinfo ENOTFOUND (localdb) в Connection.tedious.once.err (C: \ Users \ vndbsubramaniam \ Desktop \ React проекты \ ReactWithSql \ node_modules \ MSSQL \ Lib \ tedious.js: 244: 17) в Object.onceWrapper (events.js: 285: 13) на Connection.emit (events.js: 197: 13) в InstanceLookup.instanceLookup (C: \ Users \ vndbsubramaniam \ Desktop \ React проекты \ ReactWithSql \ node_modules \ утомительно \ Lib \ connection.js: 945: 16) в sender.execute (C: \ Users \ vndbsubramaniam \ Desktop \ React projects \ ReactWithSql \ node_modules \ tedious \ lib \ instance-lookup.js: 66: 13) в GetAddrInfoReqWrap.invokeLookupAll [как обратный вызов] (C: \ Users \ vndbsubramaniam \ Desktop \ React проекты \ ReactWithSql \ node_modules \ утомительно \ Lib \ sender.js: 43: 16) в GetAddrInfoReqWrap.onlookupall [как oncomplete] (dns.js: 70: 17) код: 'EINSTLOOKUP', originalError: {ConnectionError: Не удалось экземпляр поиска на (localdb) - getaddrinfo ENOTFOUND (localdb) в ConnectionError (C: \ Users \ vndbsubramaniam \ Desktop \ React projects \ ReactWithSql \ node_modules \ tedious \ lib \ errors.js: 13: 12) в InstanceLookup.instanceLookup (C: \ Users \ vndbsubramaniam \ Desktop \ React проекты \ ReactWithSql \ node_modules \ утомительно \ Lib \ connection.js: 945: 32) в sender.execute (C: \ Users \ vndbsubramaniam \ Desktop \ React projects \ ReactWithSql \ node_modules \ tedious \ lib \ instance-lookup.js: 66: 13) в GetAddrInfoReqWrap.invokeLookupAll [как обратный вызов] (C: \ Users \ vndbsubramaniam \ Desktop \ React проекты \ ReactWithSql \ node_modules \ утомительно \ Lib \ sender.js: 43: 16) в GetAddrInfoReqWrap.onlookupall [как oncomplete] (dns.js: 70: 17) сообщение: 'Не удалось найти экземпляр на (localdb) - getaddrinfo ENOTFOUND (localdb)', код: 'EINSTLOOKUP'}, имя: 'ConnectionError'} Ошибка подключения к базе данных

1 Ответ

0 голосов
/ 12 апреля 2019

После нескольких часов борьбы, наконец, нашел ответ здесь Соединение SQL с узлом

Кажется, мне нужно добавить пакет msnodesqlv8 и использовать добавить синтаксис драйвера в конфигурацию.

app.get('/test', (req, res) => {

const sql = require('mssql/msnodesqlv8');

// config for your database
const config = {
    database: 'test',
    server: '(localdb)\\v11.0',
    driver: 'msnodesqlv8',
    options : {
        trustedConnection : true
    }
};
console.log('starting sql');

const pool = new sql.ConnectionPool(config);
pool.connect().then(() => {
    //simple query
    pool.request().query('select * from employees', (err, result) => {
          if(err) res.send(err)
          else{
              return res.json({
                  data : result.recordset
              })
          }
      })
      sql.close();
})    
console.log('ending sql');    

});

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...