You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NodeJS连接本地SQL Server失败,Python连接正常求排查

问题分析与解决方案

从错误信息ESOCKET和你提供的代码对比来看,问题大概率出在Node.js端的连接配置解析逻辑上——Python的ODBC驱动和Node.js依赖的tedious驱动在实例名的处理方式上存在差异。以下是几个针对性的修复方向:

1. 调整Server字段写法,移除instanceName配置

把实例名直接整合到server字段中,删除options里的instanceName项。tedious驱动有时候对单独配置的instanceName解析存在兼容性问题,而直接写在server字符串里的方式更贴近ODBC的写法(和你Python代码一致):

const config = {
  user: process.env.LOCAL_SQLEXPRESS_USER,
  password: process.env.LOCAL_SQLEXPRESS_PW,
  database: 'FamilyTree',
  server: 'localhost\\SQLEXPRESS01', // 用双反斜杠转义,或用模板字符串`localhost\SQLEXPRESS01`
  options: {
    trustServerCertificate: true,
    trustedConnection: false,
    encrypt: false
  },
};

2. 强制指定端口号跳过SQL Browser解析

既然你已经把IPAll的TCP端口设为1433,直接在server字段中指定端口,绕过SQL Browser的实例名解析流程,避免解析失败:

server: 'localhost,1433',
// 或者保留实例名的同时指定端口
server: 'localhost\\SQLEXPRESS01,1433',

3. 修正代码中的异步查询问题(非连接错误,但会导致后续逻辑异常)

你的查询代码中缺少await,query方法返回的是Promise,直接打印会得到Promise对象而非查询结果,需要补上:

const result = await pool.request().query('select * from Members');

4. 更新依赖包确保兼容性

尝试更新mssql及其依赖的tedious驱动,避免版本不匹配导致的连接问题:

npm update mssql

内容的提问来源于stack exchange,提问作者sdMarth

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 02:50:08