Azureの下のnode-sqlserverまたはnode-mssqlを使用する
-
22-12-2019 - |
質問
Node-MSSQLを使用してAzure上のデータベースに接続しようとしています。私の開発システムはWindows 7であり、私はすべてのwebmatrixを介してインストールするためにnode-sqlserverを取得するすべての成功はありませんでした。
私の質問は2つのパートです。最初に、私がノードSQLServerでエラーを取得したマイクロソフトからの指示に従っても何らかの理由はありますか? WebMatrix内のNPMを使用したNAIVEアプローチを試す次のエラーが発生します。
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が設置されています。
私の質問の2番目の部分は、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)Prefeコンパイル済みのnode-sqlserver
ドライバをダウンロードすることで、このレポ。私はすべてのDev依存関係をインストールしても私のマシン上のソースをコンパイルできませんでした。
2)node-mssql
モジュールSQL Serverと通信するために3つの異なるドライバを使用します。Configはドライバを指定しないため、デフォルトのものが使用されます - Tedious
。設定を正しく機能させるには、設定を変更する必要があります。
var config = {
user: '{username}',
password: '{password}',
server: '{server}.database.windows.net', // simply remove "tcp:"
database: '{database}'
}
.
node-mssql
を使用してnode-sqlserver
を使用するオプションもありますが、それを機能させるには、コンパイル済みのnode-sqlserver
ドライバを手動でインストールする必要があります。設定は次のようになります。
var config = {
driver: 'msnodesql',
user: '{username}',
password: '{password}',
server: 'tcp:{server}.database.windows.net',
database: '{database}'
}
. 他のヒント
私は昨年のNode.jsからSQL Azureを使用していました。
Refあなたの最初の問題は、NPMのインストール中にnode-sqlserver
とnode-gyp
を介してコンパイルする必要があります。それで、C ++コンパイラがインストールされているかどうかを確認してください。私がインストールしていたとき、私は私にVS2010 C ++が必要です。あなたが今それを必要とするかどうか、またはそれ以降のバージョンが必要ではありません。CommandウィンドウからC++
を実行でき、それが失敗した場合はログファイルを取得する必要があります。
Refあなたの2番目の問題は、私がこのモジュールを使用していたときの接続文字列を使用します。UserNameがFormat npm install node-mssql
で指定されたことを確認できます。SQL Azureファイアウォールが他のクラウドサービスのために開かれたかどうかもダブルチェックしてください。