0
0
Node.jsframework~20 mins

IPC communication between processes in Node.js - Practice Problems & Coding Challenges

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
IPC Mastery Badge
Get all challenges correct to earn this badge!
Test your skills under time pressure!
component_behavior
intermediate
2:00remaining
What is the output of this Node.js IPC example?
Consider the following code where a parent process forks a child process and sends a message. What will the parent log after the child responds?
Node.js
const { fork } = require('child_process');

const child = fork('./child.js');

child.on('message', (msg) => {
  console.log('Parent received:', msg);
});

child.send({ greeting: 'hello' });

// child.js
process.on('message', (msg) => {
  process.send({ reply: msg.greeting + ' world' });
});
AParent received: { reply: 'hello world' }
BNo output, process crashes
CParent received: undefined
DParent received: { greeting: 'hello' }
Attempts:
2 left
💡 Hint
Remember that the child sends back a message with a 'reply' property combining the greeting.
📝 Syntax
intermediate
1:30remaining
Which option correctly sets up IPC message listener in a child process?
You want the child process to listen for messages from the parent. Which code snippet is correct?
Aprocess.onMessage((msg) => { console.log(msg); });
Bprocess.on('message', (msg) => { console.log(msg); });
Cprocess.addListener('msg', (msg) => { console.log(msg); });
Dprocess.listen('message', (msg) => { console.log(msg); });
Attempts:
2 left
💡 Hint
Check the exact event name and method to listen for messages on process.
🔧 Debug
advanced
2:30remaining
Why does this IPC message not arrive in the child process?
Given the parent code below, the child never receives the message. What is the cause?
Node.js
const { fork } = require('child_process');
const child = fork('./child.js');

child.send('start');

// child.js
process.on('message', (msg) => {
  console.log('Child got:', msg);
});
AThe child process must be started with execArgv option
BThe message must be an object, not a string
CThe child process file path is incorrect or missing
DThe parent must wait for 'message' event before sending
Attempts:
2 left
💡 Hint
Check if the child process file exists and is correctly referenced.
state_output
advanced
2:00remaining
What is the final value of count after IPC messages?
A parent sends increment commands to a child process which updates a count. What is the child's count after these messages?
Node.js
const { fork } = require('child_process');
const child = fork('./counter.js');

child.send({ cmd: 'inc' });
child.send({ cmd: 'inc' });
child.send({ cmd: 'dec' });

// counter.js
let count = 0;
process.on('message', (msg) => {
  if (msg.cmd === 'inc') count++;
  else if (msg.cmd === 'dec') count--;
});

setTimeout(() => {
  process.send({ count });
}, 100);
A0
B2
C-1
D1
Attempts:
2 left
💡 Hint
Count increments twice then decrements once.
🧠 Conceptual
expert
1:30remaining
Which statement about Node.js IPC channels is true?
Choose the correct statement about IPC communication between parent and child processes in Node.js.
AIPC communication uses a built-in channel that serializes messages as JSON
BIPC channels allow sending only strings between processes
CChild processes can send messages only after the parent sends one first
DIPC messages are synchronous and block the event loop until received
Attempts:
2 left
💡 Hint
Think about how data is transferred between processes and the format used.