2016-12-21 12 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()에서 로깅하는 것이 없습니다. 이전/이후 getter 로그는 잘 기록됩니다.

연결하는 데 오랜 시간이 걸렸다 고 생각했지만 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 '

그리고 코드