2017-06-15 72 views
3

Windows認証モードでnode.jsmssqlに接続しようとしています。 tediousmssql、およびmsnodesqlv8モジュールをインストールしましたが、接続を開く方法をまだ理解できません。Node.js SQL ServerのWindows認証との接続

var sql = require('mssql'); 
    var config = { 
    driver: 'msnodesqlv8', 
    server: 'POPPY-GI\\SQLEXPRESS', 
    database: 'NodinSports', 
    options:{ 
    trustedConnection: true, 
    useUTC: true}} 

    sql.connect(config).then(function() { 
    new sql.Request().query('select * from users') 
    .then(function(recordset){ 
    console.log(recordset); 
    }).catch(function(err) { 
    console.log(err);}); 
    }).catch(function(err) { 
    console.log(err);}); 

私が言って長いエラーを取得する実行した後:

`ConnectionError`: Port for `SQLEXPRESS` not found in 
`ServerName`;POPPYGI;`InstanceName;SQLEXPRESS;IsClustered`;No;Version;12.0.2000.8;; 

    at Connection.tedious.once.err (D:\Never Lazy\University\`AN2, SEM 2\WEB\`Projek`\node_modules\`mssql`\lib\`tedious.js:216:17`) 

    at Connection.g (events.js:291:16) 
    at emitOne (events.js:96:13) 
    at Connection.emit (events.js:188:7) 
    at D:\Never Lazy\University\AN2,SEM2\WEB\Projekt\node_modules\tedious\lib\connection.js:570:27 
    at D:\Never Lazy\University\AN2,SEM2\WEB\Projekt\node_modules\tedious\lib\instance-lookup.js:91:24 
    at Socket.onMessage (D:\Never Lazy\University\AN2,SEM2\WEB\Projekt\node_modules\tedious\lib\sender.js:140:9) 
    at emitTwo (events.js:106:13) 
    at Socket.emit (events.js:191:7) 
    at UDP.onMessage (dgram.js:549:8) 
    code: 'EINSTLOOKUP', 

私は任意の助けのために本当に感謝するでしょう

これは私が試したものです。

はFIXED:

services.mscチェックでは以下が有効になっている場合:SQL Server構成マネージャで

SQL Server(*server_name*) -- in my case `SQLEXPRESS` 
SQL Server Browser 
SQL Server Agent(*server_name*) -- if you are using `SQLEXPRESS` this doesn't need to run 

- >プロトコルをSERVER_NAME用:TCP/IPを有効にします。 (TCP/IP上>ダブルクリック - - SQL Server構成マネージャ] - > [SQL Native Clientの構成を - > [クライアントプロトコル>デフォルトポート)

、すべてが正常になりますことを確認し、サーバが使用しているポートを確認するために、そして追加コードport: *your_port*var config = { ... }です。

最後に、以下のモジュールをインストールしvar sql = require("mssql/msnodesqlv8");

+0

POPPYGIはremですかoteサーバー? SQL Browserサービスは実行中ですか?このインスタンスにSSMSを使用して接続できますか?サービスが実際に使用しているポートは何ですか(SQLログで通知されます)。 –

+0

ローカルサーバー、SQLブラウザーサービスが稼働しています。ポートは1433です。「このインスタンスにSSMSを使用して接続する」ということはどういう意味か分かりません。 ポート1433を 'config'に追加しました。「ConnectionError:ログインに失敗しました」というメッセージが表示されます。[...] – Brigitta

+0

ご協力ありがとうございます。^_^ – Brigitta

答えて

0

var sql = require('mssql');を変更します。

"dependencies": { 
    "msnodesqlv8": "^0.4.14", 
    "mssql": "^4.1.0" 
    } 

マイノードのバージョン:V8.1.4

const sql = require("mssql/msnodesqlv8"); 

const main = async() => { 
    const pool = new sql.ConnectionPool({ 
    server: "myservername", 
    database: "mydbname", 
    options: { 
     trustedConnection: true 
    } 
    }); 

    await pool.connect(); 

    const request = new sql.Request(pool); 

    const query = `SELECT [FirstName] 
    ,[LastName] 
    ,[Email] 
FROM [Dev].[Users]`; 

    const result = await request.query(query); 

    console.dir(result); 
}; 
main(); 

(あなたが非同期または古いバージョンせずにそれを行うことができます:https://stackoverflow.com/a/40406998/639575

関連する問題