Beginner LevelExpress JS
What does app.listen() return and how do you use the returned http.Server instance for WebSockets?
❓ Interview Prompt: Explain app.listen(), underlying native node:http Server instance, attaching WebSockets (ws/Socket.IO), and server.close().
'app.listen(port)' is convenience shorthand for creating and starting a native Node.js HTTP server:
'http.createServer(app).listen(port)'.
Returned Instance:
It returns the underlying 'http.Server' instance. This server instance is required when attaching WebSocket servers ('ws' or 'Socket.IO') on the same port or initiating graceful server shutdown ('server.close()').
Code Implementation Example
javascript
import express from 'express';
import { WebSocketServer } from 'ws';
const app = express();
app.get('/api/health', (req, res) => res.send('OK'));
// 1. app.listen() returns native node:http Server instance
const server = app.listen(3000, () => {
console.log('HTTP server listening on port 3000');
});
// 2. Attach WebSocket server to the SAME HTTP server instance!
const wss = new WebSocketServer({ server });
wss.on('connection', (ws) => console.log('WebSocket client connected'));💡Attaching WebSocket server to the http.Server instance returned by app.listen().
🎯 Interview Key Takeaway
app.listen() returns the native http.Server instance required for WebSocket integration and graceful shutdown.
#app.listen#http.Server#WebSockets#Beginner
Back to all Express JS Questions→