Вопрос

Я пытаюсь подключиться к базе данных в Azure, используя node-mssql.Моя система разработки — Windows 7, и мне не удалось установить node-sqlserver через WebMatrix.

Мой вопрос состоит из двух частей:Во-первых, есть ли какая-то причина, по которой, даже когда я следую инструкциям Microsoft, я получаю ошибки с node-sqlserver?Пробуя наивный подход с использованием NPM внутри WebMatrix, я получаю следующую ошибку:

An error occurred.

"C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" "node-sqlserver" "--json"


Exit status 1

Failed at the node-sqlserver@0.1.0 install script.
This is most likely a problem with the node-sqlserver package,
not with npm itself.
Tell the author that this fails on your system:
    node-gyp rebuild
You can get their info via:
    npm owner ls node-sqlserver
There is likely additional logging output above.



Failed: npm reported an error.

NodeNpm.NpmException: Failed: npm reported an error.
   at NodeNpm.NpmApi.Install(INpmPackage package)
   at Microsoft.WebMatrix.NpmGallery.CachingPackageManger.InstallPackage(INpmPackage package)
   at Microsoft.WebMatrix.NpmGallery.PackageViewModel.Install()
   at System.Threading.Tasks.Task.InnerInvoke()
   at System.Threading.Tasks.Task.Execute()

На машине установлен VS2012 Professional.

Вторая часть моего вопроса: есть ли причина, по которой использование node-mssql не будет работать в Azure?Я просто получаю сообщение об ошибке неудачного подключения, хотя я несколько раз проверял детали (заменил заполнители фактическими значениями ниже):

var config = {
  user: '{username}',
  password: '{password}',
  server: 'tcp:{server}.database.windows.net',
  database: '{database}'
}

Я получаю следующую ошибку:

{"name":"ConnectionError","message":"подключение к tcp:{server}.database.windows.net:1433 >- не удалось Ошибка:getaddrinfo ENOTFOUND"}

Я понимаю, что node-sqlserver — лучший способ сделать это в Azure, но я пытался пару дней, но безуспешно.Есть ли что-то очевидное, что мне не хватает?

Это было полезно?

Решение

1) Вы можете решить его, загрузив предварительнокомпроцентный драйвер node-sqlserver из Это репо .Я не смог скомпилировать источники на моей машине, даже со всеми разработчиками разработки.

2) Модуль node-mssql Используйте три разных драйвера для связи с SQL Server.Ваш конфиг не указывает ни одного драйвера, поэтому используется по умолчанию - Tedious.Вы должны изменить свой конфиг, чтобы сделать его правильно:

var config = {
    user: '{username}',
    password: '{password}',
    server: '{server}.database.windows.net', // simply remove "tcp:"
    database: '{database}'
}
.

Существует также возможность использовать node-mssql с node-sqlserver, но чтобы он работал, вы должны установить компилируемый драйвер node-sqlserver вручную.Config должна выглядеть так:

var config = {
    driver: 'msnodesql',
    user: '{username}',
    password: '{password}',
    server: 'tcp:{server}.database.windows.net',
    database: '{database}'
}
.

Другие советы

Я использовал SQL Azure из Node.js в прошлом году, когда модуль был назван node-sqlserver поэтому мой ответ может не сработать.

Обратитесь к вашей первой проблеме: node-mssql необходимо скомпилировать через node-gyp и C++ во время установки NPM.Поэтому вам лучше проверить, установлен ли у вас компилятор C++.Когда я устанавливал, мне сказали, что мне нужен VS2010 C++.Не уверен, нужна ли она вам сейчас или какая-то более поздняя версия.Вы можете запустить npm install node-mssql из командного окна, и вы должны получить файл журнала, если это не удалось, должно быть npm-error.log или что-то подобное.

Обратите внимание на вашу вторую проблему: когда я использовал этот модуль, я использовал строку подключения.Не могли бы вы дважды проверить, что ваше имя пользователя указано в формате user@server.Также дважды проверьте, был ли ваш брандмауэр SQL Azure открыт для других облачных служб.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top