const http = require('http');
// Create an HTTP server
const server = http.createServer((req, res) => {
// Log request details
console.log(`[${new Date().toISOString()}] ${req.method} ${req.url}`);
// Set response headers
res.setHeader('Content-Type', 'text/plain');
res.setHeader('X-Powered-By', 'Node.js HTTP Server');
// Handle different routes
if (req.url === '/') {
res.statusCode = 200;
res.end('Welcome to the Home Page!');
}
else if (req.url === '/about') {
res.statusCode = 200;
res.end('About Us');
}
else if (req.url === '/api/data') {
res.setHeader('Content-Type', 'application/json');
res.statusCode = 200;
res.end(JSON.stringify({
message: 'API Response',
timestamp: new Date().toISOString(),
method: req.method,
url: req.url,
headers: req.headers
}, null, 2));
}
else {
res.statusCode = 404;
res.end('404 - Page Not Found');
}
});
// Server events
server.on('listening', () => {
const addr = server.address();
console.log(`Server listening on ${addr.address}:${addr.port}`);});
server.on('connection', (socket) => {
console.log(`New connection from ${socket.remoteAddress}:${socket.remotePort}`);
});
server.on('error', (err) => {
console.error('Server error:', err);
process.exit(1);
});
server.on('close', () => {
console.log('Server closed');});
// Start the server
const PORT = 3007;
server.listen(PORT, '0.0.0.0', () => {
console.log(`Server running at http://localhost:${PORT}/`);
// Make a test request to the server
console.log('\nMaking test requests...');
// Test home page
http.get(`http://localhost:${PORT}/`, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => {
console.log('\nHome page response:');
console.log(`Status: ${res.statusCode} ${res.statusMessage}`);
console.log('Headers:', JSON.stringify(res.headers, null, 2));
console.log('Body:', data);
// Test API endpoint
http.get(`http://localhost:${PORT}/api/data`, (res) => {
let apiData = '';
res.on('data', (chunk) => { apiData += chunk; });
res.on('end', () => {
console.log('\nAPI response:');
console.log(`Status: ${res.statusCode} ${res.statusMessage}`);
console.log('Body:', apiData);
// Close the server after tests
server.close();
});
}).on('error', (err) => {
console.error('API request error:', err);
server.close();
});
});
}).on('error', (err) => {
console.error('Home page request error:', err);
server.close();
});
});