使用 sequelize 连接到 SQL 服务器数据库时出错

Error connecting to SQL Server database with sequelize

我正在尝试使用 sequelize 连接到 SQL 服务器数据库。这是我的连接代码。

var connection = new Sequelize(config.database,config.user,config.password, {
host: config.server,
port: 1433,
dialect: 'mssql'
});

我知道我的配置文件正在正确传递数据。我已经能够连接到 mysql 数据库,但是当我切换到尝试使用 SQL 服务器时,我没有运气。

我是不是漏掉了一些连接选项?我在文档中没有看到任何关于域的信息,所以没有遗漏,这是我对原因的最佳猜测。

这是我遇到的错误

message: 'Failed to connect to HOSTNAME:1433 - connect 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"
  }
}

你安装繁琐吗?连接到 SQL 服务器是必需的依赖项。我现在不使用 ORM,因为旧版本的 Sequelize 不支持 SQL 服务器,但是这个肯定有效 https://www.npmjs.com/package/mssql

确保您获得最新版本的 Sequelize。

 npm install --save tedious

答案是一个未记录的选项,称为方言选项。对于我的设置,这是连接到我们的 mssql 实例所必需的。

dialectOptions: {
    instanceName: INSTANCE_NAME_HERE,
    domain: DOMAIN_HERE
}

所以你的整个 Sequelize instance/connection 看起来像这样:

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
    }
});

移除死亡link