2017-07-20 12 views
1

のためにバックスラッシュ(\)を受け付けない:それは接続クローズエラーを示しているノードJS接続文字列は、次のように私は、SQL ServerのノードJSでの接続文字列を持つSQL Serverの

var webconfig = { 
    user: 'sa', 
    password: 'aman', 
    server: 'Aman\AMAN', 
    database: 'Demo', 
    options: { 
     encrypt: false // Use this if you're on Windows Azure 
    } 
} 

しかし、192.5.5.62などのネットワークサーバーを使用していれば、正常に動作します。私は 'Aman \ AMAN'の問題を考えています。サーバー名が\ backslashを受け入れないからです(私は思っています)。

次の接続は、私のために働いている...

var webconfig = { 
     user: 'sa', 
     password: 'aman', 
     server: '192.5.5.62', 
     database: 'Demo', 
     options: { 
      encrypt: false // Use this if you're on Windows Azure 
     } 
    } 

\(バックスラッシュ)の私の推測がtrueの場合、など、このサーバー名またはウィンドウの認証とそれを修正する方法を私に提案してください

助けていただければ幸いです。

+1

JS文字列でバックスラッシュをエスケープする必要があります。 'Aman \ AMAN'を試してみてください。変数内に[JavaScriptバックスラッシュ(\)が重複しているとエラーが発生しています](https://stackoverflow.com/questions/3903488/javascript-backslash-in-variables-is-causing-an-error) – Santi

+0

使用しているSQL Serverモジュールは何ですか? mssql(https://www.npmjs.com/package/mssql#connect-callback)は、あなたがそれをやろうとしている方法で、指定されたインスタンスを受け入れるようです。 – Paul

+0

@サンティ私はこれを既に試したことがありません –

答えて

1

あなたのコメントから、あなたは退屈なデフォルトのドライバを使用しているようです。 their docsを見ると、あなたがこのようなことするようにコードを変更したいと思いますので、彼らは、ホスト名とインスタンス名を分離しているようだ:

var webconfig = { 
    user: 'sa', 
    password: 'aman', 
    server: 'Aman', 
    database: 'Demo', 
    options: { 
     encrypt: false, // Use this if you're on Windows Azure 
     instanceName: 'AMAN' 
    } 
} 
+0

"Connection Closed Error"を示します。 –

+0

詳細をお知らせください。その文字列以外のエラーで戻ってくるものもあります。また、実際にはデフォルトポートなどのSQLサーバーインスタンスに接続できることを確認してください。このエラーは熱心なファイアウォールの結果である可能性があります。 – Paul

0

まず第一に、私はあなたがtediousモジュールを使用していることをここに引き受けます(options.encryptのコメントを見て)。私はコメントでこれを最初に確認したかったのですが、私はコメントするクレジットが足りません。まったく同じ問題に直面したので、私は本当にあなたを手伝ってくれると思っていました。

質問をNodejs退屈なモジュールのコンテキストで2つに分割します。接続するデフォルトの退屈な用途サーバーoptions.portことで

  1. 名前付きインスタンスのサポート
  2. Windows認証のサポート

名前付きインスタンスのサポート

options.portがデフォルト設定で、デフォルト値は1433です。これが、以下に述べる設定の理由です。あなたは、接続設定で指定されたインスタンスを使用したい場合は、以下に示すよう

var webconfig = { 
    user: 'sa', 
    password: 'aman', 
    server: '192.5.5.62', 
    database: 'Demo', 
    options: { 
     encrypt: false // Use this if you're on Windows Azure 
    } 
} 

しかし、あなたはoptions.instanceNameを使用する必要があります。 documentationを参照してください。

var webconfig = { 
    user: 'sa', 
    password: 'aman', 
    server: 'Aman', //FQDN is preferred, so assuming you can ping this 
    database: 'Demo', 
    options: { 
     instanceName: 'AMAN' 
     encrypt: false // Use this if you're on Windows Azure 
    } 
} 

ただし、ホスト名\ IP自体を使用して接続できるため、名前付きインスタンスを使用して接続する必要はありません。

また、一度設定でoptions.portまたはoptions.instanceNameではなく、両方を使用することができますどちらか。

これは、あなたの2番目の質問に私をもたらします。Windows認証

退屈モジュール用

サポートは、現在のSQL Serverインスタンスに接続するために、Windows認証をサポートしていません。 hereを参照してください。しかし、既にそれに取り組んでいる明るい精神はほとんどありません。この公開PR #497を見てください。退屈なコミュニティに自由に貢献してください。

ボーナスTIP:ではなく、根本的な原因を推測する、今後は、あなたもその意志ルートあなたの右方向への面倒なモジュールによってdebug eventを利用することができます。本番環境では必ず無効にしてください。

助けがあれば、これを回答としてマークしてください。乾杯!

+0

"Connection Closed Error"と表示されています。 –

+0

"ping Aman"のようにサーバーにpingを実行できますか? – Naman

+0

そして、私が答えで述べたように、デバッグリスナーを付けましたか?それは何と言いますか? – Naman

関連する問題