我正在尝试使用sequelize连接到SQL Server数据库。这是我的连接代码。
var connection = new Sequelize(config.database,config.user,config.password, {
host: config.server,
port: 1433,
dialect: 'mssql'
});
我知道我的配置文件正确传递了数据。我已经能够连接到一个mysql数据库,但当我切换到尝试使用SQL Server时,我没有运气。
我在这里错过了一些连接选项吗?我在文档中没有看到关于域名的任何内容,所以没有错过,这是我对原因的最佳猜测。
这是我得到的错误
消息:'无法连接到HOSTNAME:1433 - 连接ECONNREFUSED ip.of.ho.st:1433' ;,
这是我的package.json文件
{
"name": "sequelizeTest",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"sequelize": "^3.19.3",
"tedious": "^1.13.2"
}
}
答案 0 :(得分:6)
答案是一个名为dialect options的无证选项。对于我的设置,这是必须的,以便连接到我们的mssql实例。
dialectOptions: {
instanceName: INSTANCE_NAME_HERE,
domain: DOMAIN_HERE
}
所以你的整个Sequelize实例/连接看起来像这样:
var connection = new Sequelize(config.database,config.user,config.password, {
host: config.smallserver,
dialect: 'mssql',
pool: {
max: 5,
min: 0,
idle: 10000
},
dialectOptions: {
instanceName: config.instancename,
domain: config.domain
}
});
我在这篇令人难以置信的帖子http://raathigesh.com/Connecting-To-MSSQL-with-Sequelize/的帮助下找到了这个答案,没有这个帖子,我不得不放弃续集!
答案 1 :(得分:1)
你安装乏味吗?它是连接到SQL Server所必需的依赖项。我现在不使用ORM,因为Sequelize的旧版本不支持SQL Server,但是这个版本确实可用https://www.npmjs.com/package/mssql
确保您获得最新版本的Sequelize。
npm install --save tedious