Get your own Node server
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();
  });
});

              
Server running at http://localhost:3007/

Making test requests...
New connection from ::1:12345
[2025-06-18T06:46:38.123Z] GET /
New connection from ::1:12346
[2025-06-18T06:46:38.234Z] GET /api/data

Home page response:
Status: 200 OK
Headers: {
  "content-type": "text/plain",
  "x-powered-by": "Node.js HTTP Server",
  "date": "Wed, 18 Jun 2025 06:46:38 GMT",
  "connection": "close",
  "transfer-encoding": "chunked"
}
Body: Welcome to the Home Page!

API response:
Status: 200 OK
Body: {
  "message": "API Response",
  "timestamp": "2025-06-18T06:46:38.234Z",
  "method": "GET",
  "url": "/api/data",
  "headers": {
    "host": "localhost:3007",
    "connection": "keep-alive",
    "user-agent": "node",
    "accept": "*/*"
  }
}
Server closed