【发布时间】:2017-11-18 11:10:56
【问题描述】:
我正在尝试在 Windows 身份验证模式下将 node.js 连接到 mssql。我安装了tedious、mssql 和msnodesqlv8 模块,但我仍然不知道如何打开连接。
这是我尝试过的:
var sql = require('mssql');
var config = {
driver: 'msnodesqlv8',
server: 'POPPY-GI\\SQLEXPRESS',
database: 'NodinSports',
options:{
trustedConnection: true,
useUTC: true}}
sql.connect(config).then(function() {
new sql.Request().query('select * from users')
.then(function(recordset){
console.log(recordset);
}).catch(function(err) {
console.log(err);});
}).catch(function(err) {
console.log(err);});
运行后我收到一个很长的错误提示:
`ConnectionError`: Port for `SQLEXPRESS` not found in
`ServerName`;POPPYGI;`InstanceName;SQLEXPRESS;IsClustered`;No;Version;12.0.2000.8;;
at Connection.tedious.once.err (D:\Never Lazy\University\`AN2, SEM 2\WEB\`Projek`\node_modules\`mssql`\lib\`tedious.js:216:17`)
at Connection.g (events.js:291:16)
at emitOne (events.js:96:13)
at Connection.emit (events.js:188:7)
at D:\Never Lazy\University\AN2,SEM2\WEB\Projekt\node_modules\tedious\lib\connection.js:570:27
at D:\Never Lazy\University\AN2,SEM2\WEB\Projekt\node_modules\tedious\lib\instance-lookup.js:91:24
at Socket.onMessage (D:\Never Lazy\University\AN2,SEM2\WEB\Projekt\node_modules\tedious\lib\sender.js:140:9)
at emitTwo (events.js:106:13)
at Socket.emit (events.js:191:7)
at UDP.onMessage (dgram.js:549:8)
code: 'EINSTLOOKUP',
如果能提供任何帮助,我将不胜感激。
已修复:
在services.msc 中检查以下是否启用:
SQL Server(*server_name*) -- in my case `SQLEXPRESS`
SQL Server Browser
SQL Server Agent(*server_name*) -- if you are using `SQLEXPRESS` this doesn't need to run
在 SQL Server 配置管理器中 -> server_name 的协议:启用 TCP/IP。
为确保一切正常,请检查服务器正在使用的端口(SQL Server 配置管理器 -> SQL Native Client 配置 -> 客户端协议 -> 双击 TCP/IP ->默认端口 ) ,并将port: *your_port* 添加到var config = { ... } 中的代码中。
最后,将var sql = require('mssql'); 更改为var sql = require("mssql/msnodesqlv8");
【问题讨论】:
-
POPPYGI 是远程服务器吗? SQL Browser 服务是否正在运行?您可以使用 SSMS 连接到此实例吗?服务实际使用的是什么端口(SQL 日志会告诉你)?
-
本地服务器,SQL Browser 服务正在运行,端口为 1433。我不太明白“使用 SSMS 连接到此实例”是什么意思。我将端口:1433 添加到“配置”中,现在我收到一条错误消息:
ConnectionError: Login failed for user ' '.[...] -
感谢您的帮助,问题已解决。 ^_^
-
如果你解决了你的问题,you can answer your own question!这也会将其从未应答队列中删除。
标签: sql-server node.js npm windows-authentication