Не удается подключиться к базе данных SQL из nodejs - PullRequest
0 голосов
/ 15 марта 2020

Итак, я новичок в node.js и пытаюсь установить соединение с моей локальной базой данных, чтобы позже вставить данные. Однако, когда я выполняю свой код, он выдает ошибку соединения с кодом ошибки ESOCKET. Я пробовал разные способы структурировать мою строку подключения, но это всегда дает мне эту ошибку.

Как я уже говорил, я новичок в nodejs, поэтому я не совсем уверен, является ли проблема моей строкой подключения или портом он использует (1433) или что-то совсем другое.

код:

const sql = require('mssql');
const config = {
  user: 'test',
  password: 'test',
  server: '.',
  database: 'Parkings'
}

async function databaseconn(parking){
   try{
       let pool = await sql.connect(config);
         await pool.request().query(`
          if not exists (select 1 from [Parking] where [Name] = '${parking.name}')
          begin
          insert into Parking ([Name], [Type], [Latitude], [Longtitude], [MaxCap]) 
          values ('${parking._name}', '${parking._type}', ${parking._latitude}, ${parking._longitude}, ${parking._maxcap})
          end
        `);
        await pool.request().query(`
        insert into [Entry] ([TimeDay], [Available], [ParkingId]) 
        values (${p._time}, ${p._available}, (select Id from Parking where Name = '${p._name}'))
        `);
      pool.close();
  } catch (err){
    console.log(err);
  }
}

ошибка:

ConnectionError: Failed to connect to .:1433 - getaddrinfo ENOTFOUND .
    at Connection.<anonymous> (D:\Documenten\2019-2020\ParkingProject\nodejs_serverapp\node_modules\mssql\lib\tedious\connection-pool.js:68:17)
    at Object.onceWrapper (events.js:428:26)
    at Connection.emit (events.js:321:20)
    at Connection.socketError (D:\Documenten\2019-2020\ParkingProject\nodejs_serverapp\node_modules\tedious\lib\connection.js:1290:12)
    at D:\Documenten\2019-2020\ParkingProject\nodejs_serverapp\node_modules\tedious\lib\connection.js:1116:21
    at GetAddrInfoReqWrap.callback (D:\Documenten\2019-2020\ParkingProject\nodejs_serverapp\node_modules\tedious\lib\connector.js:158:16)
    at GetAddrInfoReqWrap.onlookupall [as oncomplete] (dns.js:76:17) {
  code: 'ESOCKET',
  originalError: ConnectionError: Failed to connect to .:1433 - getaddrinfo ENOTFOUND .
      at ConnectionError (D:\Documenten\2019-2020\ParkingProject\nodejs_serverapp\node_modules\tedious\lib\errors.js:13:12)
      at Connection.socketError (D:\Documenten\2019-2020\ParkingProject\nodejs_serverapp\node_modules\tedious\lib\connection.js:1290:56)
      at D:\Documenten\2019-2020\ParkingProject\nodejs_serverapp\node_modules\tedious\lib\connection.js:1116:21
      at GetAddrInfoReqWrap.callback (D:\Documenten\2019-2020\ParkingProject\nodejs_serverapp\node_modules\tedious\lib\connector.js:158:16)
      at GetAddrInfoReqWrap.onlookupall [as oncomplete] (dns.js:76:17) {
    message: 'Failed to connect to .:1433 - getaddrinfo ENOTFOUND .',
    code: 'ESOCKET'
  },
  name: 'ConnectionError'
}

картинка

РЕШЕНИЕ

после многих неприятностей я нашел решение проблемы благодаря сообщению на github. Вы должны включить протокол TCP / IP на вашем сервере sql и перезапустить его. Руководство по ссылкам ниже:

https://github.com/tediousjs/tedious/issues/799

https://www.blackbaud.com/files/support/infinityinstaller/content/installermaster/tkenablenamedpipesandtcpipconnections.htm

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