Geo*_*rds 6 sql-server sequelize.js
完成 SQL Server 安装程序后,给定的连接字符串为Server=localhost\MSSQLSERVER01;Database=master;Trusted_Connection=True;,这似乎是一种奇怪的格式,如果我尝试使用该连接字符串通过sequelize 连接到数据库:
var sequelize = new Sequelize(process.env.DB_STRING);
Run Code Online (Sandbox Code Playgroud)
我收到错误:
类型错误:无法读取 null 的属性“替换”
在新的 Sequelize (C:\Users\George\Source\Repos\TestProj\node_modules\sequelize\lib\sequelize.js:132:40) 处的对象处。(C:\Users\George\Source\Repos\TestProj\models\index.js:13:21) 在 Module._compile (module.js:570:32)
根据这篇文章,您应该安装sequelize-msnodesqlv8:
var sequelize = new Sequelize({
dialect: 'mssql',
dialectModulePath: 'sequelize-msnodesqlv8',
dialectOptions: {
instanceName: 'MSSQLSERVER01',
trustedConnection: true
},
host: 'localhost',
database: 'master'
});
Run Code Online (Sandbox Code Playgroud)
或者也许更好:
var sequelize = new Sequelize({
dialect: 'mssql',
dialectModulePath: 'sequelize-msnodesqlv8',
dialectOptions: {
connectionString: 'Server=localhost\MSSQLSERVER01;Database=master; Trusted_Connection=yes;'
},
});
Run Code Online (Sandbox Code Playgroud)
但您不应将默认数据库保留为Master. 请改用您的数据库名称。
标记一下:
有很多node mssql客户端,sequelize默认使用tedious,但由于是纯javascript,tedious缺乏对集成安全性的支持。msnodesqlv8 是与本机 odbc 库交互的客户端。这允许使用集成安全性。它确实需要额外的二进制文件来部署,但幸运的是,msnodesqlv8 随最常见架构的二进制文件一起分发
您正在使用集成安全性,因此您需要处理该问题。
另请参阅这个问题。
| 归档时间: |
|
| 查看次数: |
20435 次 |
| 最近记录: |