Я не могу подключиться к серверу SQL с помощью сервера Node.JS

module.exports = {
    "user": 'ThisUsername',
    "password": 'ThisPassword',
    "server": '169.254.4.58',
    "database": 'ThisDatabase',
    "pool": {
        "max": 10,
        "min": 0,
        "idleTimeoutMillis": 30000
    }
};

Это объект конфигурации, хранящийся в отдельном файле, поэтому значения не жестко закодированы в

let sql = require('mssql');
var connStr = require('./connStr.js');

const connectionString = process.env.CONNECTION_STRING||'';
//console.log(process.env);
console.log(connectionString);

sql.on('error', err => {
  // ToDo: For testing only -- remove console.log later
  console.log(err);
});

// addapted from https://stackoverflow.com/questions/30356148/how-can-i-use-a-single-mssql-connection-pool-across-several-routes-in-an-express
const poolPromise = sql.connect(connStr)
  .then(pool => {
    console.log('SQL connection established.');
    return pool;
  })
  .catch(err => SqlClose(err));

module.exports = { sql, poolPromise };

function SqlClose(thisErr) {
    console.log(`SQL connection failed - \n${thisErr}`);
    sql.close();
};

Это код, который подключается к серверу SQL.

C:\ThisDirectory>npm run dev

> [email protected] dev C:\ThisDirectory
> env-cmd -f ./config/dev.env node ./src/index.js


tedious deprecated The default value for `config.options.enableArithAbort` will change from `false` to `true` in the next major version of `tedious`. Set the value to `true` or `false` explicitly to silence this message. node_modules\mssql\lib\tedious\connection-pool.js:61:23
Server is up on port 3000
SQL connection failed -
ConnectionError: Failed to connect to 169.254.4.58:1433 in 15000ms

Это ошибка при попытке подключения

Сервер подключен к порту 3000, относится к серверу Node.JS. Ошибка подключения SQL относится к подключению к SQL-серверу.

Похоже, что один из этих файлов является причиной, по которой я не могу подключиться. Я не могу включить TCP/IP на сервере SQL из-за ограничений в моей рабочей сети, обозреватель SQL Server уже запущен, это единственные две вещи, которые я могу найти в Интернете, которые, по-видимому, помогают решить эту проблему. Я не писал этот код, но у разработчика есть другой важный проект. Я в растерянности, и у меня истек срок. Пожалуйста помоги


person TheBasementNerd    schedule 11.03.2020    source источник


Ответы (1)


Вам необходимо обновить конфигурацию следующим образом:

module.exports = {
    "user": 'ThisUsername',
    "password": 'ThisPassword',
    "server": '169.254.4.58',
    "database": 'ThisDatabase',
    "pool": {
        "max": 10,
        "min": 0,
        "idleTimeoutMillis": 30000
    },
    "options": {
    "encrypt": true,
    "enableArithAbort": true
    }
};

enableArithAbort необходимо передать в свойстве options.

person franvergara66    schedule 11.03.2020
comment
Не исправил, такая же проблема осталась - person TheBasementNerd; 11.03.2020
comment
Попробуйте изменить на false. - person franvergara66; 11.03.2020
comment
Нет, по-прежнему не удается подключиться - person TheBasementNerd; 11.03.2020