There is a flaw in the tedious driver logic that indicates that the port is "undefined" when running on a mac platform.
The program (testtedious.js) runs fine when using the following configuration settings on a MS Windows platform:
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
}
}
};
However, when running on a mac I get the following error:
$ 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
Here's the "fix":
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
}
}
};
Note the movement of the port
setting into options and the removal of the instanceName: 'SQLEXPRESS'
option setting.