NodeJS后端连接SQL Server问题:UDL测试成功但Sequelize配置报错
SQL Server连接问题:UDL测试成功但Sequelize配置报错
问题详情
- 已创建
test.udl文件测试SQL Server连接,测试返回**"Test Connection Succeeded"**(附连接信息配置截图) - 修改
config/db.js中的Sequelize配置代码后,终端返回报错(附报错截图)
当前Sequelize配置代码
import { Sequelize } from "sequelize"; const dbInstance = new Sequelize ('DOCFLOW', '', '', { dialect: 'mssql', host: '(localdb)', dialectOptions: { // Observe the need for this nested options field for MSSQL options: { useUTC: false, dateFirst: 1, enableArithAbort: true, encrypt: false, trustServerCertificate: true, instanceName: 'Local', trustedConnection: true, schema: 'ERPMASTER', } } }); export { dbInstance };
排查与修复建议
修正LocalDB的Host格式
LocalDB的host配置需要带上实例路径,当前(localdb)写法不完整,若UDL中指定的实例是Local,应改为:host: '(localdb)\\Local'调整Trusted Connection参数位置
trustedConnection参数在部分Sequelize版本中需要放在dialectOptions根层级,而非嵌套的options里,调整后:dialectOptions: { trustedConnection: true, options: { useUTC: false, dateFirst: 1, enableArithAbort: true, encrypt: false, trustServerCertificate: true, instanceName: 'Local', schema: 'ERPMASTER', } }验证LocalDB实例状态
打开终端执行以下命令,确认实例Local存在且处于运行状态:# 查看所有LocalDB实例 sqllocaldb info # 启动指定实例 sqllocaldb start Local调整Schema配置位置
Sequelize中指定Schema更推荐放在初始化主配置对象中,而非dialectOptions内:const dbInstance = new Sequelize ('DOCFLOW', '', '', { dialect: 'mssql', host: '(localdb)\\Local', schema: 'ERPMASTER', dialectOptions: { // 其他配置... } });检查依赖版本兼容性
确保sequelize和tedious(SQL Server驱动)版本匹配,旧版本可能存在LocalDB连接bug,尝试更新到稳定版本:npm update sequelize tedious
内容的提问来源于stack exchange,提问作者lucasmaciel03
相关产品推荐
相关产品推荐

