#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 } решены для меня. Спасибо большое, сэр.