ΠΡΠΈΠ²Π΅Ρ, ΠΊΠΎΠΌΠ°Π½Π΄Π°,
Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΠΌΡ ΡΠ°ΡΡΠΎ ΡΡΠ°Π»ΠΊΠΈΠ²Π°Π΅ΠΌΡΡ Ρ ΠΏΡΠ΅ΡΡΠ²ΠΈΡΡΡΠΌΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈΠ· Π½Π°ΡΠ΅Π³ΠΎ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΊ MsSql, ΠΊΠΎΠ³Π΄Π° ΠΊ ΡΠ»ΡΠΆΠ±Π΅ Π±ΠΎΠ»ΡΡΠ΅ ΡΡΠ°ΡΠΈΠΊΠ°.
ΠΡΡΡ Π»ΠΈ ΠΎΠΊΠΎΠ½ΡΠ°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ ΠΏΠΎ ΡΡΠΎΠΌΡ Π²ΠΎΠΏΡΠΎΡΡ.
ΠΡΠΈΠ±ΠΊΠ° :
_{ ConnectionError: ΠΠ΅ ΡΠ΄Π°Π»ΠΎΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ ΠΊ <
Π² Connection.tedious.once.err (D:\home\site\wwwroot\node_modules\mssql\lib\tedious.js:216:17)
Π½Π° Connection.g (events.js:291:16)
Π² emitOne (events.js:96:13)
Π² Connection.emit (events.js:188:7)
Π² Connection.socketError (D:\home\site\wwwroot\node_modules\tedious\lib\connection.js:699:14)
Π² D:\home\site\wwwroot\node_modules\tedious\lib\connection.js:590:25
Π² SequentialConnectionStrategy.connect (D:\home\site\wwwroot\node_modules\tedious\lib\connector.js:153:9)
Π² Socket.onError (D:\home\site\wwwroot\node_modules\tedious\lib\connector.js:169:16)
Π² emitOne (events.js:96:13)
Π² Socket.emit (events.js:188:7)
ΠΊΠΎΠ΄: 'ESOCKET',
ΠΈΡΡ
ΠΎΠ΄Π½Π°Ρ ΠΎΡΠΈΠ±ΠΊΠ°: _
ΠΠ΅ΡΠ°Π»ΠΈ Π²Π΅ΡΡΠΈΠΈ:
"ΡΡΠΎΠΌΠΈΡΠ΅Π»ΡΠ½ΡΠΉ": "2.0.1",
"mssql": "^4.0.4",
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ,
ΠΡΠ°Π²ΠΈΠ½.
ΠΡΠΈΠ²Π΅Ρ @Praveen335 ππ»
ΠΠ½Π΅ ΠΆΠ°Π»Ρ ΡΠ»ΡΡΠ°ΡΡ, ΡΡΠΎ Π²Ρ ΡΡΠΎΠ»ΠΊΠ½ΡΠ»ΠΈΡΡ Ρ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ tedious
. Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠΉ ΠΠ°ΠΌΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π΄Π»Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΡΡΠ΅Π³ΠΎ. ΠΠ΅ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ Π²Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ? ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π°ΠΌ Π±ΡΠ»ΠΎ Π±Ρ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π·Π½Π°ΡΡ:
tedious
Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅?tedious
.Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ! ππ»ββοΈ
ΠΡΠΈΠ²Π΅Ρ @arthurschreiber ,
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° Π²Π°Ρ Π±ΡΡΡΡΡΠΉ ΠΎΡΠ²Π΅Ρ. Π― ΡΠΆΠ΅ ΠΎΠ±Π½ΠΎΠ²ΠΈΠ» Π½ΡΠ΄Π½ΡΡ Π²Π΅ΡΡΠΈΡ Π² ΡΠ²ΠΎΠ΅ΠΌ ΠΏΠΎΡΡΠ΅.
ΠΠ΅ΡΠ°Π»ΠΈ Π²Π΅ΡΡΠΈΠΈ:
"ΡΡΠΎΠΌΠΈΡΠ΅Π»ΡΠ½ΡΠΉ": "2.0.1",
"mssql": "^4.0.4",
ΠΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ Π°ΠΊΡΠΈΠ²Π½ΡΠΉ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΏΠΎΡΠΎΠΊ Π΄Π»Ρ SQL-ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΈ ΡΠ΅ΡΠ΅Π²ΠΎΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, ΠΏΠ΅ΡΠ΅Π΄Π°Π² Π΅Π³ΠΎ Π² ΡΠ»ΡΠΆΠ±Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ Microsoft. ΠΠ½ΠΈ ΡΠΏΠΎΠΌΡΠ½ΡΠ»ΠΈ Π²ΡΠ΅ Ρ ΠΎΡΠΎΡΠ΅Π΅ Ρ ΠΊΠΎΠ½ΡΠ° SQLServer. ΠΡΠΎΡΠ΅Π½Ρ ΡΠ°Π±ΠΎΡΠ΅ΠΉ Π½ΠΈΡΠΈ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠ΅Π½ΡΡΠ΅. Π― ΠΏΠΎΠΏΡΡΠ°Π»ΡΡ ΠΏΠΎΠ²ΡΠΎΡΠΈΡΡ ΠΏΠΎΠΏΡΡΠΊΡ Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ. ΠΠΎ Π½Π΅ ΠΏΠΎΠ²Π΅Π·Π»ΠΎ. ΠΠΎΡΠ»Π΅ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΎΡΠΈΠ±ΠΊΠΈ ΡΠΎΠΊΠ΅ΡΠ° ΠΎΠ½ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ Π²ΡΠ΄Π°Π΅Ρ Π²ΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π·Π°ΠΏΡΠΎΡΡ. ΠΡΠ±ΠΎΠ΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π½Π°ΠΌ. Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΏΡΠ» ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ .
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ,
ΠΡΠ°Π²ΠΈΠ½.
Π’ΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ Π·Π΄Π΅ΡΡ, ΠΎΠ½ Π²Π½Π΅Π·Π°ΠΏΠ½ΠΎ Π΄ΠΎΡ ΠΎΠ΄ΠΈΡ Π΄ΠΎ ΡΡΠΎΠ³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΈ Π·Π°ΡΡΡΠ΅Π²Π°Π΅Ρ...
ΠΡ ΡΠ°ΠΊΠΆΠ΅ Π²ΠΈΠ΄ΠΈΠΌ ΡΠ΅ ΠΆΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΡΡΠΈΠ΅ Π² Π½Π°ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅.
ΠΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌ ΠΏΡΠ» ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΡΠ»ΡΠΆΠ±Ρ.
new App.SQL.ConnectionPool
Π ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π·Π°ΠΏΡΠΎΡ Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ Ρ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ:
ConnectionError: ΠΠ΅ ΡΠ΄Π°Π»ΠΎΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ ΠΊ ΡΠ΅ΡΠ²Π΅ΡΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ : 1433 - ΠΠ΅ ΡΠ΄Π°Π»ΠΎΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ (ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ)
Π‘Π»ΡΠΆΠ±Π° ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ, Π½ΠΎ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ Π²ΡΠ΄Π°Π²Π°ΡΡ ΡΡΠΈ ΠΎΡΠΈΠ±ΠΊΠΈ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ 20 ΠΌΠΈΠ½ΡΡ. ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΡΠ»ΡΠΆΠ±Π° ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΡΠ½ΠΎΠ²Π° ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ.
ΠΡ Π½Π°Π±Π»ΡΠ΄Π°Π΅ΠΌ ΡΡΠΎ Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌΠΈ ΡΠ·Π»Π° Π½Π° ΡΡΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅, Π½ΠΎ ΠΎΠ½ΠΈ Π½Π΅ ΠΎΡΠΊΠ»ΡΡΠ°ΡΡΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ (ΠΈΠ½ΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ), ΡΡΠΎ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΡΡΠ°Π½Π½ΠΎ. ΠΡ ΡΡΠΈΡΠ°Π΅ΠΌ, ΡΡΠΎ ΠΏΡΠΈΡΠΈΠ½Π° Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ NodeJS, Π° Π½Π΅ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ mssql.
ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΡΠΈ Π²Π΅ΡΡΠΈΠΈ:
mssql: 4.3.0 (ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ)
ΡΡΠΎΠΌΠΈΡΠ΅Π»ΡΠ½Π°Ρ Π²Π΅ΡΡΠΈΡ, Π²ΠΊΠ»ΡΡΠ΅Π½Π½Π°Ρ Π² ΡΡΠΎΡ ΠΏΠ°ΠΊΠ΅Ρ, - 2.7.1.
ΠΡΠΈΠ²Π΅Ρ. ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΡΡΡΠ²Π°Π΅ΠΌ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
ΠΡΠΎ Π½Π°ΡΠΈ Π²Π΅ΡΡΠΈΠΈ:
MSSQL: 4.3.0
ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΡΠΎΠΌΠΈΡΠ΅Π»ΡΠ½ΡΡ Π²Π΅ΡΡΠΈΡ: 2.7.1
ConnectionError: Failed to connect to xxxxxx.database.windows.net:1433 in 15000ms
at Connection.tedious.once.err (...node_modules\mssql\lib\tedious.js:239:17)
at Object.onceWrapper (events.js:315:30)
at emitOne (events.js:116:13)
at Connection.emit (events.js:211:7)
at Connection.connectTimeout (...node_modules\mssql\node_modules\tedious\lib\connection.js:944:12)
at Timeout._onTimeout (...node_modules\mssql\node_modules\tedious\lib\connection.js:913:16)
at ontimeout (timers.js:482:11)
at tryOnTimeout (timers.js:317:5)
at Timer.listOnTimeout (timers.js:277:5)
ΠΠΈΡΠΈΡΠ΅ ΡΠ²ΠΎΠΈ Π²Π΅ΡΡΠΈΠΈ MSSQL Server. Π’Π΅ΠΏΠ΅ΡΡ SQLNCLI11 Π·Π°ΠΌΠ΅Π½Π΅Π½ Π½Π° MSOLEDBSQL Π΄Π»Ρ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° MSSQL2017.
https://blogs.msdn.microsoft.com/sqlnativeclient/2018/03/30/released-microsoft-ole-db-driver-for-sql-server/
ΠΏΠΎΠ»ΡΡΠΈΠ» ΡΡ ΠΆΠ΅ ΠΎΡΠΈΠ±ΠΊΡ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠΎΠ΄Π°, ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΈΠ· ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ°Π·ΡΠ° Microsoft: https://www.microsoft.com/en-us/sql-server/developer-get-started/node/windows/step/2.html
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, Ρ ΡΠ΅ΡΠΈΠ» ΡΡΡ ΠΎΡΠΈΠ±ΠΊΡ, Π²ΠΊΠ»ΡΡΠΈΠ² ΠΏΡΠΎΡΠΎΠΊΠΎΠ» TCP/IP Π² Β«ΠΠΈΡΠΏΠ΅ΡΡΠ΅ΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ° SqlΒ» -> Β«ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΡΠ΅ΡΠΈ SQL ServerΒ» -> Β«ΠΡΠΎΡΠΎΠΊΠΎΠ»Ρ Π΄Π»Ρ
C:\Users\zpc\Desktop\SqlServerSample>node connect.js
{ ConnectionError: Failed to connect to localhost:1433 - Could not connect (sequence)
at ConnectionError (C:\Users\zpc\Desktop\SqlServerSample\node_modules\tedious\lib\errors.js:13:12)
at Connection.socketError (C:\Users\zpc\Desktop\SqlServerSample\node_modules\tedious\lib\connection.js:1183:28)
at Connector.execute (C:\Users\zpc\Desktop\SqlServerSample\node_modules\tedious\lib\connection.js:1022:21)
at SequentialConnectionStrategy.connect (C:\Users\zpc\Desktop\SqlServerSample\node_modules\tedious\lib\connector.js:69:7)
at Socket.onError (C:\Users\zpc\Desktop\SqlServerSample\node_modules\tedious\lib\connector.js:84:12)
at Socket.emit (events.js:189:13)
at emitErrorNT (internal/streams/destroy.js:82:8)
at emitErrorAndCloseNT (internal/streams/destroy.js:50:3)
at process._tickCallback (internal/process/next_tick.js:63:19)
message:
'Failed to connect to localhost:1433 - Could not connect (sequence)',
code: 'ESOCKET' }
ΠΏΠΎΠ»ΡΡΠΈΠ» ΡΡ ΠΆΠ΅ ΠΎΡΠΈΠ±ΠΊΡ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠΎΠ΄Π°, ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΈΠ· ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ°Π·ΡΠ° Microsoft: https://www.microsoft.com/en-us/sql-server/developer-get-started/node/windows/step/2.html
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, Ρ ΡΠ΅ΡΠΈΠ» ΡΡΡ ΠΎΡΠΈΠ±ΠΊΡ, Π²ΠΊΠ»ΡΡΠΈΠ² ΠΏΡΠΎΡΠΎΠΊΠΎΠ» TCP/IP Π² Β«ΠΠΈΡΠΏΠ΅ΡΡΠ΅ΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ° SqlΒ» -> Β«ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΡΠ΅ΡΠΈ SQL ServerΒ» -> Β«ΠΡΠΎΡΠΎΠΊΠΎΠ»Ρ Π΄Π»ΡΒ» -> Β«TCP/IPΒ».
C:\Users\zpc\Desktop\SqlServerSample>node connect.js { ConnectionError: Failed to connect to localhost:1433 - Could not connect (sequence) at ConnectionError (C:\Users\zpc\Desktop\SqlServerSample\node_modules\tedious\lib\errors.js:13:12) at Connection.socketError (C:\Users\zpc\Desktop\SqlServerSample\node_modules\tedious\lib\connection.js:1183:28) at Connector.execute (C:\Users\zpc\Desktop\SqlServerSample\node_modules\tedious\lib\connection.js:1022:21) at SequentialConnectionStrategy.connect (C:\Users\zpc\Desktop\SqlServerSample\node_modules\tedious\lib\connector.js:69:7) at Socket.onError (C:\Users\zpc\Desktop\SqlServerSample\node_modules\tedious\lib\connector.js:84:12) at Socket.emit (events.js:189:13) at emitErrorNT (internal/streams/destroy.js:82:8) at emitErrorAndCloseNT (internal/streams/destroy.js:50:3) at process._tickCallback (internal/process/next_tick.js:63:19) message: 'Failed to connect to localhost:1433 - Could not connect (sequence)', code: 'ESOCKET' }
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ! Π£ ΠΌΠ΅Π½Ρ Π±ΡΠ»Π° ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ;)
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΌΡ Π²ΡΠ΅ Π΅ΡΠ΅ ΡΡΠ°Π»ΠΊΠΈΠ²Π°Π΅ΠΌΡΡ Ρ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ ΠΏΠΎΡΡΠΈ ΡΠΎ Π²ΡΠ΅ΠΌΠΈ Π½Π°ΡΠΈΠΌΠΈ ΡΠ»ΡΠΆΠ±Π°ΠΌΠΈ nodejs, ΠΌΡ ΠΏΡΠΎΠ²Π΅Π»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ
ΡΠ΅ΡΡΠΎΠ².
ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ Π²ΡΡΠ΅ Ρ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ TCP/IP ΡΠΆΠ΅ Π±ΡΠ» Π²ΠΊΠ»ΡΡΠ΅Π½ Π½Π° Π½Π°ΡΠ΅ΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅ sql.
ΠΡ ΡΠΎΠ·Π΄Π°Π»ΠΈ Π½ΠΎΠ²ΡΡ ΡΠ»ΡΠΆΠ±Ρ nodejs, ΠΊΠΎΡΠΎΡΠ°Ρ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ. ΠΠ½ Π½Π΅ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Π΄ΡΡΠ³ΠΎΠΉ ΡΠ»ΡΠΆΠ±ΠΎΠΉ, ΠΏΡΠΎΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² PM2.
ΠΠ½ ΠΎΡΠΊΡΠΎΠ΅Ρ Π½ΠΎΠ²ΡΠΉ ΠΏΡΠ» ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΈ ΠΏΡΠΎΡΡΠΎ ΡΠΈΠ΄ΠΈΡ ΡΠ°ΠΌ.
ΠΡ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ 3 ΠΎΡΠΈΠ±ΠΊΠΈ Π·Π° 5 Π΄Π½Π΅ΠΉ, ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΡΡΠΈΠ΅ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
Β«ConnectionError: Π½Π΅ ΡΠ΄Π°Π»ΠΎΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ ΠΊ sql.tilroy. ΠΠ½ΡΡΡΠ΅Π½Π½ΠΈΠΉ: 1433 β Π½Π΅ ΡΠ΄Π°Π»ΠΎΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ (ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ)Β».
ΠΡΠΎ ΠΊΠΎΠ΄:
`
ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ½Π°Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ = {
ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ: Config.sql.sqluser,
ΠΏΠ°ΡΠΎΠ»Ρ: Config.sql.sqlpassword,
ΡΠ΅ΡΠ²Π΅Ρ: Config.sql.sqlhost,
Π±Π°Π·Π° Π΄Π°Π½Π½ΡΡ
: Config.sql.sqldatabase,
ΠΏΠΎΡΡ: Config.sql.sqlport,
Π²ΡΠ΅ΠΌΡ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ: 3000,
Π·Π°ΠΏΡΠΎΡΠ’Π°ΠΉΠΌΠ°ΡΡ: 3000,
Π±Π°ΡΡΠ΅ΠΉΠ½: {
ΠΌΠ°ΠΊΡ: 100,
min: 1, // Π½Π΅ Π·Π°ΠΊΡΡΠ²Π°ΡΡ Π²ΡΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ.
ΠΏΡΠΎΡΡΠΎΡΠ’ΠΈΠΌΠ΅Π°ΡΡΠΠΈΠ»Π»ΠΈΡ: 1000,
evictionRunIntervalMillis: 1500000
}
};
const sqlConnection = new SQL.ConnectionPool(config, function (err) {
Log.debug("got sql connection");
if(err){
Log.error(err);
process.exit(1);
}
});
sqlConnection.on('error', err => {
Log.error(`Connection err : ${err}`);
process.exit(1);
});
`
ΠΡ ΠΎΠ±Π½ΠΎΠ²ΠΈΠ»ΠΈ Π½Π°Ρ SQL-ΡΠ΅ΡΠ²Π΅Ρ, Π½ΠΎ ΡΡΠΎ Π½Π΅ ΠΏΠΎΠΌΠΎΠ³Π»ΠΎ. ΠΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ Π²ΡΠ΅ Π½Π°ΡΠΈ ΠΏΠ°ΠΊΠ΅ΡΡ, Π½ΠΎ Π²ΡΠ΅ Π΅ΡΠ΅ Π΅ΡΡΡ ΡΡΠΈ ΠΎΡΠΈΠ±ΠΊΠΈ.
Π§ΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ Π΅ΡΠ΅ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ? ΠΡ Π±Ρ Π½Π΅ Ρ
ΠΎΡΠ΅Π»ΠΈ Π²ΡΠ±ΡΠ°ΡΡΠ²Π°ΡΡ tedious/mssql, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π΅Π³ΠΎ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ
ΡΠ΅ΡΠ²ΠΈΡΠ°Ρ
.
@TimTilroy Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΡΡΠΎΠΌΠΈΡΠ΅Π»ΡΠ½ΡΠΉ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠ»Π° ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ ΡΡΠΎΠΌΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠ»Π° ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ ? ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΡΡΠΎΠΌΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ ΡΡΠΎΠΌΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΡΠ» ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ, ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π»ΠΈ ΡΡΠΎ.
ΠΡΠΈΠ²Π΅Ρ Π―Π½Π§ΠΎΠΊΠ‘,
ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π½Π΅ ΠΏΠ°ΠΊΠ΅Ρ ΠΏΡΠ»Π° ΡΡΠΎΠΌΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ, Π° ΠΏΡΠ» ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈΠ· ΠΏΠ°ΠΊΠ΅ΡΠ° mssql (Ρ ΡΡΠΈΡΠ°Ρ, ΡΡΠΎ ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΡΠΎΠΌΠΈΡΠ΅Π»ΡΠ½ΡΠΉ).
ΠΠ΄Π½Π°ΠΊΠΎ ΠΌΡ ΠΎΠ±Π½ΠΎΠ²ΠΈΠ»ΠΈ ΠΏΠ°ΠΊΠ΅Ρ mssql Π΄ΠΎ Π²Π΅ΡΡΠΈΠΈ 5.1, ΠΈ ΡΠ΅ΠΏΠ΅ΡΡ ΠΎΠ½ ΠΊΠ°ΠΆΠ΅ΡΡΡ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΡΠΌ, Ρ Π½Π°Ρ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅Ρ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π² Π½Π°ΡΠ΅ΠΌ ΡΠ΅ΡΡΠΎΠ²ΠΎΠΌ ΡΠ΅ΡΠ²ΠΈΡΠ΅. ΠΠ΄Π½ΠΎ ΠΈΠ· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ:
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΏΡΠ»Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½Π° ΠΈΠ· ΠΏΡΠ»Π° ΡΠ·Π»ΠΎΠ² Π² tarn.js.
Π’Π°ΠΊ ΡΡΠΎ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΡΠΎ ΡΠ΅ΡΠΈΠ»ΠΎ Π½Π°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ»ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ ΠΊ ΠΏΡΠ»Ρ Π½Π° 0, Π½Π΅ Π·Π½Π°Ρ, ΠΌΠΎΠΆΠ΅Ρ Π»ΠΈ ΡΡΠΎ ΠΈΠΌΠ΅ΡΡ ΠΊΠ°ΠΊΠΎΠ΅-Π»ΠΈΠ±ΠΎ Π²Π»ΠΈΡΠ½ΠΈΠ΅.
@MarioPerezEsteso , Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΊ Π²Π°ΡΠ΅ΠΌΡ ΡΠ΅ΡΠ²Π΅ΡΡ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠΏΡΡΠ°ΡΡΡΡ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ TCP IP Π²ΠΊΠ»ΡΡΠ΅Π½ ΠΈ ΡΡΠΎ Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ Π½ΠΎΠΌΠ΅Ρ ΠΏΠΎΡΡΠ° Π² Π²Π°ΡΠ΅ΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ , ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π»ΠΈ ΡΠ΅ΡΠ²Π΅Ρ.
@regevbr , @Praveen335 ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΠΏΡΠ» ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ tarn.js Π²ΠΌΠ΅ΡΡΠΎ ΠΏΡΠ»Π° ΡΠ·Π»ΠΎΠ², ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ΄Π΅Π»Π°Π» TimTilroy, ΡΡΠΎΠ±Ρ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ, ΠΈΡΠΏΡΠ°Π²ΠΈΡ Π»ΠΈ ΡΡΠΎ Π²Π°ΡΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ. ΠΡΠ»ΠΈ Π½Π΅Ρ, ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡΡΡ Π΄ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ Π²Π΅ΡΡΠΈΠΈ mssql (v5.1).
ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅: ΠΌΡ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠ»ΠΈ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΡΠΈΡ mssql (5.1.0) ΠΊΠΎ Π²ΡΠ΅ΠΌ Π½Π°ΡΠΈΠΌ ΡΠ»ΡΠΆΠ±Π°ΠΌ sql, ΠΎΠ±Π½ΠΎΠ²ΠΈΠ»ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΏΡΠ»Π° Π΄ΠΎ 0, ΠΈ ΠΏΠΎΡ ΠΎΠΆΠ΅, ΡΡΠΎ ΠΎΡΠΈΠ±ΠΊΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΏΡΠ΅ΠΊΡΠ°ΡΠΈΠ»ΠΈΡΡ Ρ ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π½Π°ΡΠ΅Π³ΠΎ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ.
Π― Π΄ΡΠΌΠ°Ρ, ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ "/" Π²ΠΌΠ΅ΡΡΠΎ "\" Π² ΠΈΠΌΠ΅Π½ΠΈ ΠΈΠ»ΠΈ ΡΡΠΎ-ΡΠΎ Π² ΡΡΠΎΠΌ ΡΠΎΠ΄Π΅.
@ Praveen335 Praveen335 ΠΡΠΎΠ±ΠΎΠ²Π°Π»ΠΈ Π»ΠΈ Π²Ρ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡΡΡ Π΄ΠΎ Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ mssql (5.1.0), ΡΡΠΎΠ±Ρ ΡΠ·Π½Π°ΡΡ, ΡΠ΅ΡΠΈΡ Π»ΠΈ ΠΎΠ½Π° Π²Π°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ? ΠΡΠ»ΠΈ Π½Π΅Ρ, Π½Π΅ ΡΡΠ΅ΡΠ½ΡΠΉΡΠ΅ΡΡ ΡΠ½ΠΎΠ²Π° ΠΎΡΠΊΡΡΡΡ ΡΡΠΎΡ Π²ΠΎΠΏΡΠΎΡ.
Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π²Π΅ΡΡΠΈΠΈ:
mssql: "^6.2.0",
ΡΡΠΎΠΌΠΈΡΠ΅Π»ΡΠ½ΠΎ: "^8.3.0"
Π― Π²ΠΊΠ»ΡΡΠΈΠ» TCP/IP Π² Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅ΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ. Π’Π°ΠΊΠΆΠ΅ Π²ΡΠ΅ ΠΌΠΎΠΈ ΡΠ»ΡΠΆΠ±Ρ sql ΡΠ°Π±ΠΎΡΠ°ΡΡ. Π½ΠΎ Ρ ΠΏΠΎΠ»ΡΡΠ°Ρ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΎΡΠΈΠ±ΠΊΡ:
C:\Nodejs\node-sql-conn\Database>ΡΠ·Π΅Π» connect.js
tedious deprecated Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ tedious
ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° Connection
Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ Π±ΡΠ΄Π΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Ρ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π½ΠΎΠ²ΡΡ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ connect
ΠΈΠ»ΠΈ Π²ΡΠ·ΠΎΠ²ΠΈΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄ .connect
Π΄Π»Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Connection
ΡΡΠΎΠ±Ρ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ ΡΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅. Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΉ\ΠΏΡΠΎΡΠ΅ΡΡ\task_queues.js:79:11
ΠΡΠΈΠ±ΠΊΠ° ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ
C:\Nodejs\ΡΠ·Π΅Π»-sql-conn\Databaseconnect.js:26
Π±ΡΠΎΡΠΈΡΡ ΠΎΡΠΈΠ±ΠΊΡ;
^
ConnectionError: Π½Π΅ ΡΠ΄Π°Π»ΠΎΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ ΠΊ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌΡ Ρ
ΠΎΡΡΡ: undefined β Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ·Π²Π°ΡΡ Π·Π°ΠΏΠΈΡΡ ΠΏΠΎΡΠ»Π΅ ΡΠ½ΠΈΡΡΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΠΎΡΠΎΠΊΠ°
ΠΏΡΠΈ ConnectionError (C:\Nodejs\node-sql-conn\node_modulestedious\lib\errors.js:13:12)
Π² Connection.socketError (C:\Nodejs\node-sql-conn\node_modulestedious\libconnection.js:1308:56)
Π² Π‘ΠΎΠΊΠ΅Ρ.
Π² Socket.emit (events.js:327:22)
Π² errorOrDestroy (internal/streams/destroy.js:108:12)
ΠΏΡΠΈ onwriteError (_stream_writable.js:418:5)
ΠΏΡΠΈ Π·Π°ΠΏΠΈΡΠΈ (_stream_writable.js:445:5)
Π² doWrite (_stream_writable.js:399:11)
Π² writeOrBuffer (_stream_writable.js:387:5)
Π² Socket.Writable.write(_stream_writable.js:318:11) {
ΠΊΠΎΠ΄: 'ESOCKET'
}
ΠΡΠΎ ΠΌΠΎΠΉ ΠΊΠΎΠ΄:
var Connection = require('ΡΡΠΎΠΌΠΈΡΠ΅Π»ΡΠ½ΠΎ').Connection;
ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΊΠΎΠ½ΡΠΈΠ³Π° = {
ΡΠ΅ΡΠ²Π΅Ρ: 'Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ',
Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ: {
ΡΠΈΠΏ: 'ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ',
ΠΎΠΏΡΠΈΠΈ: {
ΠΈΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ: 'ΡΠ°',
ΠΏΠ°ΡΠΎΠ»Ρ: '####',
ΠΏΠΎΡΡ: 1433
}
},
ΠΎΠΏΡΠΈΠΈ: {
Π±Π°Π·Π° Π΄Π°Π½Π½ΡΡ
: Β«ΠΠΎΠΌΠΏΠ°Π½ΠΈΡΒ»,
ΠΈΠΌΡ_ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ°: 'MSSQLSERVER',
rowCollectionOnDone: ΠΏΡΠ°Π²Π΄Π°,
useColumnNames: Π»ΠΎΠΆΡ,
ΡΡΠ°ΡΡΡΠ΅ΡΠ²Π΅ΡΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ΅: Π»ΠΎΠΆΡ
}
};
ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ var = Π½ΠΎΠ²ΠΎΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ (ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ);
ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅.ΠΎΠ½('ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅',ΡΡΠ½ΠΊΡΠΈΡ(ΠΎΡΠΈΠ±ΠΊΠ°){
Π΅ΡΠ»ΠΈ (ΠΎΡΠΈΠ±ΠΊΠ°) {
console.log('ΠΡΠΈΠ±ΠΊΠ° ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ');
Π±ΡΠΎΡΠΈΡΡ ΠΎΡΠΈΠ±ΠΊΡ;
}
Π΅ΡΠ΅{
console.log('ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΎ');
}
});
ΠΌΠΎΠ΄ΡΠ»Ρ.ΡΠΊΡΠΏΠΎΡΡ = ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅;
ΠΏΠΎΠ»ΡΡΠΈΠ» ΡΡ ΠΆΠ΅ ΠΎΡΠΈΠ±ΠΊΡ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠΎΠ΄Π°, ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΈΠ· ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ°Π·ΡΠ° Microsoft: https://www.microsoft.com/en-us/sql-server/developer-get-started/node/windows/step/2.html
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, Ρ ΡΠ΅ΡΠΈΠ» ΡΡΡ ΠΎΡΠΈΠ±ΠΊΡ, Π²ΠΊΠ»ΡΡΠΈΠ² ΠΏΡΠΎΡΠΎΠΊΠΎΠ» TCP/IP Π² Β«ΠΠΈΡΠΏΠ΅ΡΡΠ΅ΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ° SqlΒ» -> Β«ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΡΠ΅ΡΠΈ SQL ServerΒ» -> Β«ΠΡΠΎΡΠΎΠΊΠΎΠ»Ρ Π΄Π»ΡΒ» -> Β«TCP/IPΒ».
C:\Users\zpc\Desktop\SqlServerSample>node connect.js { ConnectionError: Failed to connect to localhost:1433 - Could not connect (sequence) at ConnectionError (C:\Users\zpc\Desktop\SqlServerSample\node_modules\tedious\lib\errors.js:13:12) at Connection.socketError (C:\Users\zpc\Desktop\SqlServerSample\node_modules\tedious\lib\connection.js:1183:28) at Connector.execute (C:\Users\zpc\Desktop\SqlServerSample\node_modules\tedious\lib\connection.js:1022:21) at SequentialConnectionStrategy.connect (C:\Users\zpc\Desktop\SqlServerSample\node_modules\tedious\lib\connector.js:69:7) at Socket.onError (C:\Users\zpc\Desktop\SqlServerSample\node_modules\tedious\lib\connector.js:84:12) at Socket.emit (events.js:189:13) at emitErrorNT (internal/streams/destroy.js:82:8) at emitErrorAndCloseNT (internal/streams/destroy.js:50:3) at process._tickCallback (internal/process/next_tick.js:63:19) message: 'Failed to connect to localhost:1433 - Could not connect (sequence)', code: 'ESOCKET' }
ΠΡΠΎΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π΄Π»Ρ ΠΌΠ΅Π½Ρ. Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ, ΡΡΠΎ Π΄Π°Π»ΠΈ ΠΌΠ½Π΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅.
Π― ΡΠ°ΠΊΠΆΠ΅ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈΡΡΡ Ρ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ESOCKET, ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π½Π΅ ΡΠ²ΡΠ·Π°Π½Π° Ρ TCP/IP, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΎ ΠΈΠ· AWS EC2 ΠΊ AS RDS ΠΈ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π±ΠΎΠ»ΡΡΡΡ ΡΠ°ΡΡΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
ΠΠΠΠΠΠΠ¦ Ρ ΡΠ΅ΡΠΈΠ» ΠΎΡΠΈΠ±ΠΊΡ. Π‘ΡΠ΅Π½Π°ΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠΉ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°Π» Π½ΠΎΠ²ΠΎΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅:
function getConnection () {
// console.log("config")
// console.log(config)
return new Promise(function (resolve, reject) {
const pool = new sql.ConnectionPool(getConfig())
// console.log("Getting connection...");
pool.connect()
.then((cn) => {
// console.log("connection got");
resolve(cn);
})
.catch((e) => {
// console.log("connection not got");
reject(e);
});
})
}
Π‘ΠΊΡΠΈΠΏΡ, ΡΠ΅ΡΠΈΠ²ΡΠΈΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ:
function runCommand(cmdText) {
return new Promise((resolve, reject) => {
pool2Connect
.then((pool) => {
// pool.request() // or: new sql.Request(pool2)
// .input('input_parameter', sql.Int, 10)
// .output('output_parameter', sql.VarChar(50))
// .execute('procedure_name', (err, result) => {
// // ... error checks
// console.dir(result)
// })
pool.request() // or: new sql.Request(pool2)
.query(cmdText)
.then((rows) => {
return resolve(rows.recordset);
})
.catch((e) => {
return reject(e);
});
})
.catch((err) => {
return reject(err);
});
});
}
Π³Π΄Π΅ pool2Connect Π½ΡΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ, ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΡΠΊΡΠΈΠΏΡΠ°:
pool2 = new sql.ConnectionPool(config);
pool2Connect = pool2.connect();
pool2.on('error', err => {
console.log(err);
});
ΠΠ°Π΄Π΅ΡΡΡ, ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
ΠΏΠΎΠ»ΡΡΠΈΠ» ΡΡ ΠΆΠ΅ ΠΎΡΠΈΠ±ΠΊΡ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠΎΠ΄Π°, ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΈΠ· ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ°Π·ΡΠ° Microsoft: https://www.microsoft.com/en-us/sql-server/developer-get-started/node/windows/step/2.html
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, Ρ ΡΠ΅ΡΠΈΠ» ΡΡΡ ΠΎΡΠΈΠ±ΠΊΡ, Π²ΠΊΠ»ΡΡΠΈΠ² ΠΏΡΠΎΡΠΎΠΊΠΎΠ» TCP/IP Π² Β«ΠΠΈΡΠΏΠ΅ΡΡΠ΅ΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ° SqlΒ» -> Β«ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΡΠ΅ΡΠΈ SQL ServerΒ» -> Β«ΠΡΠΎΡΠΎΠΊΠΎΠ»Ρ Π΄Π»Ρ"->"TCP/IP"
C:\Users\zpc\Desktop\SqlServerSample>node connect.js { ConnectionError: Failed to connect to localhost:1433 - Could not connect (sequence) at ConnectionError (C:\Users\zpc\Desktop\SqlServerSample\node_modules\tedious\lib\errors.js:13:12) at Connection.socketError (C:\Users\zpc\Desktop\SqlServerSample\node_modules\tedious\lib\connection.js:1183:28) at Connector.execute (C:\Users\zpc\Desktop\SqlServerSample\node_modules\tedious\lib\connection.js:1022:21) at SequentialConnectionStrategy.connect (C:\Users\zpc\Desktop\SqlServerSample\node_modules\tedious\lib\connector.js:69:7) at Socket.onError (C:\Users\zpc\Desktop\SqlServerSample\node_modules\tedious\lib\connector.js:84:12) at Socket.emit (events.js:189:13) at emitErrorNT (internal/streams/destroy.js:82:8) at emitErrorAndCloseNT (internal/streams/destroy.js:50:3) at process._tickCallback (internal/process/next_tick.js:63:19) message: 'Failed to connect to localhost:1433 - Could not connect (sequence)', code: 'ESOCKET' }