0
0
Expressframework~20 mins

Handling connection events in Express - Practice Problems & Coding Challenges

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
Connection Event Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
component_behavior
intermediate
2:00remaining
What happens when a client connects to this Express server?
Consider this Express server code. What will be logged when a client connects to the server?
Express
const express = require('express');
const app = express();
const server = app.listen(3000, () => console.log('Server started'));

server.on('connection', (socket) => {
  console.log('New client connected');
});
AThe message 'Server started' is logged each time a client connects.
BThe message 'New client connected' is logged each time a client connects.
CNo message is logged when a client connects because 'connection' event is not supported.
DAn error is thrown because 'server.on' is not a valid method.
Attempts:
2 left
💡 Hint
The 'connection' event is emitted by the underlying HTTP server when a new TCP connection is made.
📝 Syntax
intermediate
2:00remaining
Identify the syntax error in this Express connection event handler
Which option correctly fixes the syntax error in this code snippet?
Express
const express = require('express');
const app = express();
const server = app.listen(3000);

server.on('connection' (socket) => {
  console.log('Client connected');
});
AReplace 'connection' with 'connect': server.on('connect' (socket) => {...})
BRemove the parentheses around socket: server.on('connection', socket => {...})
CAdd a comma after 'connection': server.on('connection', (socket) => {...})
DChange 'on' to 'addListener': server.addListener('connection' (socket) => {...})
Attempts:
2 left
💡 Hint
Check the syntax of the event listener function parameters.
🔧 Debug
advanced
2:00remaining
Why does this Express server not log connection events?
This code is intended to log when a client connects, but nothing is logged. What is the cause?
Express
const express = require('express');
const app = express();

app.on('connection', (socket) => {
  console.log('Client connected');
});

app.listen(3000);
A'app' is an Express application and does not emit 'connection' events; the server object does.
BThe 'connection' event is deprecated and no longer works in Express.
CThe 'listen' method must be called with a callback to enable events.
DThe 'connection' event only fires on HTTPS servers, not HTTP.
Attempts:
2 left
💡 Hint
Consider which object emits the 'connection' event in Node.js HTTP servers.
state_output
advanced
2:00remaining
What is the value of 'activeConnections' after three clients connect and one disconnects?
This Express server tracks active connections. What is the value of 'activeConnections' after three clients connect and one disconnects?
Express
const express = require('express');
const app = express();
const server = app.listen(3000);

let activeConnections = 0;

server.on('connection', (socket) => {
  activeConnections++;
  socket.on('close', () => {
    activeConnections--;
  });
});

// Assume three clients connect, then one disconnects
A2
B3
C1
D0
Attempts:
2 left
💡 Hint
Each connection increments, each close decrements the counter.
🧠 Conceptual
expert
2:00remaining
Which event should you listen to for detecting when an HTTP request is fully received in Express?
You want to run code when the entire HTTP request body has been received by your Express server. Which event is the best to listen for?
A'connection' event on the server object
B'request' event on the server object
C'data' event on the request object
D'end' event on the request object
Attempts:
2 left
💡 Hint
Think about the event that signals the end of data streaming on a request.