在繁瑣的驅動程序邏輯中存在一個缺陷,表明在Mac平臺上運行時端口「未定義」。
$ node testtedious.js
Tedious-Connection-Pool: filling pool with 2
Tedious-Connection-Pool: creating connection: 1
Tedious-Connection-Pool: creating connection: 2
Tedious-Connection-Pool: connection connected: 1
Tedious-Connection-Pool: connection closing because of error
{ ConnectionError: Failed to connect to 127.0.0.1:undefined in 15000ms
at ConnectionError (/project-dir/node_modules/tedious/lib/errors.js:12:12)
at Connection.connectTimeout (/project-dir/node_modules/tedious/lib/connection.js:467:28)
at ontimeout (timers.js:365:14)
at tryOnTimeout (timers.js:237:5)
at Timer.listOnTimeout (timers.js:207:5)
message: 'Failed to connect to 127.0.0.1:undefined in 15000ms',
code: 'ETIMEOUT' }
Tedious-Connection-Pool: connection connected: 2
Tedious-Connection-Pool: connection closing because of error
{ ConnectionError: Failed to connect to 127.0.0.1:undefined in 15000ms
at ConnectionError (/project-dir/node_modules/tedious/lib/errors.js:12:12)
at Connection.connectTimeout (/project-dir/node_modules/tedious/lib/connection.js:467:28)
at ontimeout (timers.js:365:14)
at tryOnTimeout (timers.js:237:5)
at Timer.listOnTimeout (timers.js:207:5)
message: 'Failed to connect to 127.0.0.1:undefined in 15000ms',
code: 'ETIMEOUT' }
Tedious-Connection-Pool: creating connection: 3
Tedious-Connection-Pool: creating connection: 4
:
var connectionConfig = {
userName: 'xxx',
password: 'yyy',
database: 'zzz',
server: '127.0.0.1',
port: 1443,
debug: true,
driver: 'tedious',
options: {
encrypt: false,
instanceName: 'SQLEXPRESS',
database: 'www',
useColumnNames: false,
debug: {
packet: true,
data: true,
payload: true,
token: true,
log: true
}
}
};
然而,在Mac上我碰到下面的錯誤運行時:一個MS Windows平臺上使用以下配置設置時
程序(testtedious.js)運行良好
這裏的 「修復」:
var connectionConfig = {
userName: 'xxx',
password: 'yyy',
database: 'zzz',
server: '127.0.0.1',
port: 1443,
debug: true,
driver: 'tedious',
options: {
port: 1443,
encrypt: false,
database: 'www',
useColumnNames: false,
debug: {
packet: true,
data: true,
payload: true,
token: true,
log: true
}
}
};
注意的運動設置爲選項並刪除instanceName: 'SQLEXPRESS'
選項設置。
這是服務器的主機名,如果我使用PHP連接,但不是來自nodejs,它就可以工作 –
嘗試定義端口。默認是1433. – RaV
https://github.com/patriksimek/node-mssql/issues/155 - 類似的問題,也許它有幫助。 – RaV