Подключите nodejs rest api к Azure SQL Server

#sql-server #node.js #rest #azure

#sql-сервер #node.js #rest #azure

Вопрос:

Я разработал rest api в nodejs. Моя база данных находится в Azure SQL.

Я использовал пакет npm SWORM для подключения к SQL Server.

Ниже приведен мой код для подключения к базе данных Azure SQL.

 var conn = config.get('connectionString');
        var db = sworm.db({
            driver: 'mssql',
            config: {
                user: conn.get('user'),
                password: conn.get('password'),
                host: conn.get('host'),
                database: conn.get('database')
            }
        });
  

Когда я выполняю этот код, я получаю следующую ошибку

«сообщение»: «Не удалось подключиться к undefined: 1433 — connect ECONNREFUSED 127.0.0.1:1433», «код»: «ESOCKET»

Я не знаю, что не так

Комментарии:

1. Похоже, что ваш код пытается подключиться к серверу базы данных, размещенному локально (127.0.0.1). Я бы рекомендовал проверить строку подключения, чтобы убедиться, что она правильная.

2. ДА. Почему так? Моя строка подключения в конфигурации в порядке, указывает на Azure sql

3. Нужно ли мне вносить какие-либо изменения в драйвер. В настоящее время я использую ‘mssql’.

4. @MARKANDBhatt — Я думаю, вы упустили момент, о котором говорил Gaurav: вы подтвердили правильность вашей строки подключения после прочтения ее из файла конфигурации? То есть: Вы проверили значение host ?

5. ДА. Строка подключения указана правильно. в этом нет ничего плохого. Я могу подключиться к базе данных sql Azure с помощью Visual Studio.

Ответ №1:

Пожалуйста, дважды проверьте значение переменной conn , согласно вашему сообщению об ошибке, это действительно был доступ к вашему локальному серверу MsSQL. Пожалуйста, попробуйте следующий фрагмент кода для sworm подключения к Azure SQL Server:

 var sworm = require('sworm');

var db = sworm.db();

db.connect({
  driver: 'mssql',
  config: {
    user: '<user>@<server>',
    password: '<password>',
    server: '<server>.database.windows.net',
    database: '<database>',
    options: {
        encrypt: true // Use this if you're on Windows Azure
    }
  }
}).then(()=>{
    db.query('select 1 as number').then((results)=>{
        console.log(results);
    })
})
  

Комментарии:

1. Спасибо, Гэри. Я попробовал этот код для подключения моего локального компьютера к Azure SQL. Я получил исключение тайм-аута. Я добавил свой IP-адрес в исключение брандмауэра Azure SQL.

2. параметры: { encrypt: true } решены для меня. Спасибо большое, сэр.