使用sequelize连接到本地SQL Server数据库

时间:2017-08-27 09:34:31

标签: sql-server sequelize.js

完成SQL Server安装程序后,给定的连接字符串为Server=localhost\MSSQLSERVER01;Database=master;Trusted_Connection=True;,这似乎是一种奇怪的格式,如果我尝试使用该连接字符串连接到带有sequelize的数据库:

var sequelize = new Sequelize(process.env.DB_STRING);

我收到错误:

  

TypeError:无法读取属性'替换'为null

     

在新的Sequelize   (C:\ Users \用户乔治\源\回购\ TestProj \ node_modules \ sequelize \ lib中\ sequelize.js:132:40)   在对象。   (C:\ Users \ George \ Source \ Repos \ TestProj \ models \ index.js:13:21)at   Module._compile(module.js:570:32)

1 个答案:

答案 0 :(得分:3)

根据this article,您应该安装sequelize-msnodesqlv8

var sequelize = new Sequelize({
  dialect: 'mssql',
  dialectModulePath: 'sequelize-msnodesqlv8',
  dialectOptions: {
    instanceName: 'MSSQLSERVER01',
    trustedConnection: true
  },
  host: 'localhost',
  database: 'master'
});

或者更好:

var sequelize = new Sequelize({
  dialect: 'mssql',
  dialectModulePath: 'sequelize-msnodesqlv8',
  dialectOptions: {
    connectionString: 'Server=localhost\MSSQLSERVER01;Database=master; Trusted_Connection=yes;'
  },
});

但是你不应该将默认数据库保留为Master。请改用您的数据库名称。

标记:

  

有许多节点mssql客户端和sequelize默认使用   单调乏味,但纯粹的javascript,乏味缺乏支持   综合安全性。 msnodesqlv8是一个与a接口的客户端   本地odbc库。 这允许使用集成安全性。它   确实需要额外的二进制文件来部署,但幸运的是,   msnodesqlv8与最常见的二进制文件一起分发   架构

您正在使用集成安全性,因此您需要处理该问题。

另见this question