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 ミリ秒でタイムアウトしていたと思います。

4

1 に答える 1