使用sequelize连接到SQL Server数据库时出错

时间:2016-03-21 21:06:20

标签: sql-server node.js sequelize.js

我正在尝试使用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"
  }
}

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