2016-12-21 5 views
1

Sequelizeを使用してSQL Server 2012データベースに接続しようとしています。私の接続文字列が間違っていたとき、私はECONN REFUSEDメッセージとタイムアウトを見ていました。今、私はこのコードごとに、成功にログインし、失敗にもかかわらず、任意の応答を取得していない午前:接続とログの問題を後で処理する

import * as Sequelize from 'sequelize'; 

-- connection string redacted 
let seqConn = new Sequelize("mssql://**;Initial Catalog=**;Persist Security Info=True;Integrated Security=SSPI; User ID=**; Password=**") 

seqConn 
    .authenticate() 
    .then(function(err) { 
     console.log('Connection has been established successfully.'); 
    }) 
    .catch(function (err) { 
     console.log('Unable to connect to the database:', err); 
    }); 

私は以前の構文を使用した:

let seqConn = new Sequelize("DB", "Username", "Password", 
    { 
     dialect: 'mssql', 
     dialectOptions: { 
      instanceName: 'dev' 
     }, 
     host: '**' 
    }; 

をしかし、私はのための設定を見つけることができませんでした統合されたセキュリティまたは他の派手なSQL Serverのもの。

に関係なく、現在の接続文字列にエラーはありません。しかし、接続が確立されたということではありません。

私はモデルを取得するためにそれを使用するモデルに私のseqConnを渡してみました:

getModel(seqConn): void { 
    console.log("Getting"); 
    var model = seqConn.define("dbo.Model", { 
     modelID: Sequelize.INTEGER, 
     modelNo: Sequelize.INTEGER, 
     modelName: Sequelize.STRING(50), 
     modelAge: Sequelize.DATE 
    }); 

    seqConn.sync().then(function() { 
     model.findOne() 
     .then(function (modelRes){ 
      console.log("got a result!?"); 
      console.log(modelRes.get("modelName")); 
     }) 
     .catch(function (error){ 
      console.log("it didn't work :("); 
     }); 

    }); 
    console.log('after getter'); 
    return; 
} 

私は、これはsequelizeを使用するための正しい方法であると確信していないよ、と私はまだ私のプロジェクトを確立しています今のところ「結果が得られました」またはエラーが表示されることが予想されますが、ここにはthen()またはcatch()のいずれもログに記録されていません。前/後ゲッターログは正常にログを記録しています。

私は接続に長い時間がかかると考えていましたが、私のIT部門はSQLログで成功した接続を確認していましたが、以前は約15,000ミリ秒でタイムアウトが発生していました。

答えて

1

問題が別のNPMモジュールを含むことによって解決された:

var Sequelize = require('sequelize'); 

var seqConn = new Sequelize({ 
    dialect: 'mssql', 
    dialectModulePath: 'sequelize-msnodesqlv8', 
    dialectOptions: { 
     connectionString: 'Driver={SQL Server Native Client 11.0};[REDACTED]' 
    } 
}); 

seqConn 
    .authenticate() 
    .then(function(err) { 
     console.log('Connection has been established successfully.'); 
    }) 
    .catch(function (err) { 
     console.log('Unable to connect to the database:', err); 
}); 
:のように見えたSequelizeに接続する `sequelize-msnodesqlv8'

そしてコード

関連する問題