Files
turftracker/backend/healthcheck.js
2025-08-21 10:01:57 -05:00

50 lines
1.4 KiB
JavaScript

const http = require('http');
console.log(`[${new Date().toISOString()}] Backend health check starting...`);
const options = {
hostname: 'localhost',
port: 5000,
path: '/health',
method: 'GET',
timeout: 5000
};
console.log(`[${new Date().toISOString()}] Checking: http://${options.hostname}:${options.port}${options.path}`);
const req = http.request(options, (res) => {
console.log(`[${new Date().toISOString()}] Response status: ${res.statusCode}`);
let data = '';
res.on('data', chunk => {
data += chunk;
});
res.on('end', () => {
console.log(`[${new Date().toISOString()}] Response body:`, data);
if (res.statusCode === 200) {
console.log(`[${new Date().toISOString()}] Health check PASSED`);
process.exit(0);
} else {
console.log(`[${new Date().toISOString()}] Health check FAILED - bad status code`);
process.exit(1);
}
});
});
req.on('error', (err) => {
console.log(`[${new Date().toISOString()}] Health check ERROR:`, err.message);
console.log(`[${new Date().toISOString()}] Error code:`, err.code);
console.log(`[${new Date().toISOString()}] Error details:`, err);
process.exit(1);
});
req.on('timeout', () => {
console.log(`[${new Date().toISOString()}] Health check TIMEOUT after ${options.timeout}ms`);
req.destroy();
process.exit(1);
});
req.setTimeout(options.timeout);
req.end();