如何使用Sequelize配置连接Microsoft SQL Server?
使用Sequelize连接Microsoft SQL Server的完整配置方案
首先,你得先把必要的依赖包装全——除了sequelize,还需要安装SQL Server专属的驱动包tedious,执行下面的命令就行:
npm install sequelize tedious
我帮你把代码补全并优化了,解决了原代码里的截断问题和配置疏漏:
require('dotenv').config(); var express = require('express'); var app = express(); const Sequelize = require('sequelize'); // 初始化Sequelize连接实例 const sequelize = new Sequelize( process.env.DB_NAME, process.env.DB_USER, // 原代码填了null,这里要从环境变量取数据库用户名 process.env.DB_PASSWORD, // 同理,密码也得从环境变量读取 { dialect: 'mssql', host: `${process.env.DB_HOST}\\${process.env.DB_SERVER}`, // 用模板字符串拼接更清晰 operatorsAliases: false, pool: { max: 5, // 连接池最大容纳连接数 min: 0, // 最小空闲连接数 acquire: 30000, // 获取连接的超时时间(毫秒) idle: 10000 // 连接空闲超时后自动释放(毫秒) }, // SQL Server特有的配置项 dialectOptions: { options: { encrypt: true, // 如果是Azure云SQL必须开启,本地环境可按需调整 trustServerCertificate: true // 本地开发时可跳过证书验证,生产环境建议关闭 } } } ); // 测试数据库连接是否成功 async function testDBConnection() { try { await sequelize.authenticate(); console.log('✅ 数据库连接成功!'); } catch (error) { console.error('❌ 数据库连接失败:', error); } } testDBConnection(); // 后续可以继续配置你的Express业务路由 app.get('/', (req, res) => { res.send('服务器正常运行中'); }); app.listen(3000, () => { console.log('服务器已启动:http://localhost:3000'); });
关键配置说明:
- 身份验证:原代码里的
null,null会导致数据库拒绝连接,一定要在.env文件里配置好DB_USER和DB_PASSWORD - 连接池:补全了你截断的
acquire参数,同时添加了idle参数,避免闲置连接占用资源 - dialectOptions:针对SQL Server的特殊配置,比如加密和证书验证,根据你的部署环境(本地/云)灵活调整
配套的.env文件示例:
DB_NAME=你的数据库名称 DB_USER=数据库登录用户名 DB_PASSWORD=数据库登录密码 DB_HOST=数据库主机IP或域名(本地一般是localhost) DB_SERVER=SQL Server实例名称(比如SQLEXPRESS)
内容的提问来源于stack exchange,提问作者devRena
相关产品推荐
相关产品推荐

