【发布时间】:2016-12-26 23:44:36
【问题描述】:
我目前正在尝试使用以下 Node 程序 app.js 在我的本地计算机上建立与 SQL Server 实例的连接:
var sql = require('mssql');
sql.connect("mssql://sa:temp2@localhost/Northwind").then(function() {
// Query
new sql.Request().query('select * from TableName').then(function(recordset) {
console.dir(recordset);
}).catch(function(err) {
console.log(err);
});
}).catch(function(err) {
console.log(err);
});
还有错误:
{ ConnectionError: 无法连接到 localhost:1433 - 连接 ECONNREFUSED 127.0.0.1:1433
在连接处。 (C:\Users\name\nodeprac\node_modules\mssql\lib\tedious.js:378:25)
在 Connection.g (events.js:286:16)
在 emitOne (events.js:96:13)
在 Connection.emit (events.js:188:7)
在 Connection.socketError (C:\Users\name\nodeprac\node_modules\tedious\lib\connection.js:531:14)
在 emitOne (events.js:96:13)
在 Socket.emit (events.js:188:7)
在 emitErrorNT (net.js:1272:8)
在 _combinedTickCallback (internal/process/next_tick.js:74:11)
在 process._tickCallback (internal/process/next_tick.js:98:9)
名称:'连接错误',
消息:'无法连接到 localhost:1433 - 连接 ECONNREFUSED 127.0.0.1:1433',
代码:'ESOCKET' }
我已经尝试过一百万种其他方法来与其他错误建立联系,但我觉得这里一定有一些我遗漏的简单内容。此外,我的机器上有不止一个 SQLServer Express 实例。删除一个有帮助吗?我已经为当前服务器启用了所有TCP/IP端口,并将所有端口设置为1433
非常感谢任何建议。
【问题讨论】:
-
你能先通过 SSMS 连接吗?
-
另外——尝试 Machinename 而不是 localhost/127.0.0.1——往往更可靠。
-
是的,我可以连接到 SSMS;我试过我的机器名称,但无济于事。问题:是否有可能因为有两个 SQL Server 实例,所以它正在伪造连接?在 SSMS 中,检查服务器属性时,我有一台名为
MachineName\FirstInstance的服务器和另一台名为MachineName\SecondInstance的服务器。 -
是的,您需要在连接字符串中指定实例名称...我不太了解 node.js,无法回答该部分,但它绝对需要。
-
是的,一样。我让它在我的 ASP.NET 项目中工作,但希望使用 Node.js 和 Express.js 而不是我目前拥有的 C# API 来开发各种传真。不过我会继续努力的。谢谢!
标签: javascript sql-server node.js sockets