我正在尝试使用 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 毫秒内超时。