@@ -33,7 +33,8 @@ import { SchemasRouter } from './Routers/SchemasRouter';
33
33
import { SessionsRouter } from './Routers/SessionsRouter' ;
34
34
import { UsersRouter } from './Routers/UsersRouter' ;
35
35
import { PurgeRouter } from './Routers/PurgeRouter' ;
36
- import { AudiencesRouter } from './Routers/AudiencesRouter' ;
36
+ import { AudiencesRouter } from './Routers/AudiencesRouter' ;
37
+ import { version } from '../package.json' ;
37
38
38
39
import { ParseServerRESTController } from './ParseServerRESTController' ;
39
40
import * as controllers from './Controllers' ;
@@ -137,7 +138,12 @@ class ParseServer {
137
138
maxUploadSize : maxUploadSize
138
139
} ) ) ;
139
140
140
- api . use ( '/health' , ( req , res ) => res . sendStatus ( 200 ) ) ;
141
+ api . use ( '/health' , ( function ( req , res ) {
142
+ res . json ( {
143
+ version : version ,
144
+ status : 'ok'
145
+ } ) ;
146
+ } ) ) ;
141
147
142
148
api . use ( '/' , bodyParser . urlencoded ( { extended : false } ) , new PublicAPIRouter ( ) . expressRouter ( ) ) ;
143
149
@@ -252,7 +258,13 @@ class ParseServer {
252
258
if ( Parse . serverURL ) {
253
259
const request = require ( 'request' ) ;
254
260
request ( Parse . serverURL . replace ( / \/ $ / , "" ) + "/health" , function ( error , response , body ) {
255
- if ( error || response . statusCode !== 200 || body !== "OK" ) {
261
+ let json ;
262
+ try {
263
+ json = JSON . parse ( body ) ;
264
+ } catch ( e ) {
265
+ json = null ;
266
+ }
267
+ if ( error || response . statusCode !== 200 || ! json || json && json . status !== 'ok' ) {
256
268
/* eslint-disable no-console */
257
269
console . warn ( `\nWARNING, Unable to connect to '${ Parse . serverURL } '.` +
258
270
` Cloud code and push notifications may be unavailable!\n` ) ;
0 commit comments