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

NodeJS连接SQL Server超时崩溃问题求助

Node.js连接SQL Server Express超时问题解决指南

问题详情

启动Node.js服务后,控制台先输出Server running on PORT 3000,但15秒后程序崩溃,抛出错误:

Failed to connect 'LAPTOP-JTDH0LQ5\SQLEXPRESS in 15000ms'

已执行排查步骤:确认验证信息正确、启用TCP/IP协议、核对连接字符串、检查SQL Server运行状态、重启SQL Server及Node.js服务,问题仍未解决。

问题代码

//imports
const express = require('express');
const mssql = require('mssql');
const body_parser = require('body-parser');
const app = express();

app.use(body_parser.json())

//connection string 
const dbConfig = {
    authentication: "Windows Authentication",
    username: "LAPTOP-JTDH0LQ5\\Harsh",
    server: "LAPTOP-JTDH0LQ5\\SQLEXPRESS",
    database: "crud_form",
    port: 1433
};

mssql.connect(dbConfig , err => {
    if (err){
        console.log("Error " + err.message);
    }
    else{
        console.log("Successful Connection!");
    }
})

针对性排查方案

  • 确认SQL Server Express的实际TCP端口:SQL Server Express默认常使用动态端口而非1433。打开SQL Server配置管理器,依次进入SQL Server网络配置 -> SQLEXPRESS的协议 -> TCP/IP,右键选择属性,切换到IP地址标签,查看TCP端口的值。若为动态端口,要么设置固定端口并同步到代码的port参数,要么直接删除代码中的port配置,让驱动自动发现端口。
  • 修正Windows身份验证配置:使用Windows身份验证时,无需手动指定username,改用integratedSecurity参数确保集成身份验证生效,同时添加trustServerCertificate避免证书验证问题,修改后的配置示例:
const dbConfig = {
    server: "LAPTOP-JTDH0LQ5\\SQLEXPRESS",
    database: "crud_form",
    options: {
        trustServerCertificate: true,
        integratedSecurity: true
    }
};
  • 检查防火墙规则:确保Windows防火墙允许SQL Server使用的端口(1433或实际端口)的入站和出站请求,可临时关闭防火墙测试是否为拦截导致的超时。
  • 验证SQL Server服务权限:确认SQL Server (SQLEXPRESS)服务正以有权限访问目标数据库的账户运行,可在服务管理器中查看服务的登录账户,并测试该账户的数据库访问权限。
  • 更新mssql依赖包:检查mssql版本与Node.js版本的兼容性,执行npm install mssql@latest更新到最新稳定版,避免版本不兼容引发的连接问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 23:43:10