@@ -112,7 +112,10 @@ module.exports = function (RED) {
112
112
let cursor ;
113
113
let getNextRows ;
114
114
115
- node . on ( 'input' , async ( msg ) => {
115
+ node . on ( 'input' , async ( msg , send , done ) => {
116
+ // 'send' and 'done' require Node-RED 1.0+
117
+ send = send || function ( ) { node . send . apply ( node , arguments ) ; } ;
118
+
116
119
if ( tickUpstreamId === undefined ) {
117
120
tickUpstreamId = findInputNodeId ( node , ( n ) => RED . nodes . getNode ( n . id ) . tickConsumer ) ;
118
121
tickUpstreamNode = tickUpstreamId ? RED . nodes . getNode ( tickUpstreamId ) : null ;
@@ -146,17 +149,23 @@ module.exports = function (RED) {
146
149
} ;
147
150
148
151
const handleError = ( err ) => {
149
- console . error ( err ) ;
150
152
const error = ( err ? err . toString ( ) : 'Unknown error!' ) + ' ' + query ;
151
- node . error ( error ) ;
152
153
handleDone ( ) ;
153
154
msg . payload = error ;
154
155
msg . parts = {
155
156
id : partsId ,
156
157
abort : true ,
157
158
} ;
158
159
downstreamReady = false ;
159
- node . send ( msg ) ;
160
+ if ( err ) {
161
+ if ( done ) {
162
+ // Node-RED 1.0+
163
+ done ( err ) ;
164
+ } else {
165
+ // Node-RED 0.x
166
+ node . error ( err , msg ) ;
167
+ }
168
+ }
160
169
} ;
161
170
162
171
handleDone ( ) ;
@@ -180,8 +189,8 @@ module.exports = function (RED) {
180
189
if ( err ) {
181
190
handleError ( err ) ;
182
191
} else {
183
- const done = rows . length < node . rowsPerMsg ;
184
- if ( done ) {
192
+ const complete = rows . length < node . rowsPerMsg ;
193
+ if ( complete ) {
185
194
handleDone ( ) ;
186
195
}
187
196
const msg2 = Object . assign ( { } , msg , {
@@ -199,17 +208,20 @@ module.exports = function (RED) {
199
208
if ( msg . parts ) {
200
209
msg2 . parts . parts = msg . parts ;
201
210
}
202
- if ( done ) {
211
+ if ( complete ) {
203
212
msg2 . parts . count = partsIndex + 1 ;
204
213
msg2 . complete = true ;
205
214
}
206
215
partsIndex ++ ;
207
216
downstreamReady = false ;
208
- node . send ( msg2 ) ;
209
- if ( done ) {
217
+ send ( msg2 ) ;
218
+ if ( complete ) {
210
219
if ( tickUpstreamNode ) {
211
220
tickUpstreamNode . receive ( { tick : true } ) ;
212
221
}
222
+ if ( done ) {
223
+ done ( ) ;
224
+ }
213
225
} else {
214
226
getNextRows ( ) ;
215
227
}
@@ -247,10 +259,13 @@ module.exports = function (RED) {
247
259
248
260
handleDone ( ) ;
249
261
downstreamReady = false ;
250
- node . send ( msg ) ;
262
+ send ( msg ) ;
251
263
if ( tickUpstreamNode ) {
252
264
tickUpstreamNode . receive ( { tick : true } ) ;
253
265
}
266
+ if ( done ) {
267
+ done ( ) ;
268
+ }
254
269
} catch ( ex ) {
255
270
handleError ( ex ) ;
256
271
}
@@ -263,8 +278,6 @@ module.exports = function (RED) {
263
278
}
264
279
}
265
280
} ) ;
266
-
267
- node . on ( 'close' , ( ) => node . status ( { } ) ) ;
268
281
}
269
282
270
283
RED . nodes . registerType ( 'postgresql' , PostgreSQLNode ) ;
0 commit comments