



















































Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
This practice exam tests proficiency in Node-RED, a flow-based programming tool for integrating devices, APIs, and IoT services. Examinees solve complex workflows involving message routing, event-driven automation, edge-device integrations, MQTT pipelines, and data transformation functions. The exam emphasizes understanding Node-RED nodes, subflows, custom node development, dashboard creation, security best practices, environment-based deployment strategies, and troubleshooting runtime failures. It closely mirrors enterprise IoT integration scenarios requiring reliability and seamless orchestration.
Typology: Exams
1 / 59
This page cannot be seen from the preview
Don't miss anything!




















































Question 1. In Node‑RED, what does the “msg.payload” property typically contain? A) The node’s configuration data B) The message’s main data value C) The node’s status text D) The flow’s global context Answer: B Explanation: “msg.payload” is the standard field used to carry the primary data that flows through nodes; other properties are optional or for metadata. Question 2. Which palette manager action installs a node from the npm registry? A) Click “Update” on an installed node B) Use “Search” and then press “Install” C) Drag a node from the sidebar D) Right‑click a flow tab and select “Add Node” Answer: B Explanation: The Palette Manager’s Search tab lets you find community nodes on npm; pressing Install adds them to the runtime. Question 3. What keyboard shortcut opens the Node‑RED search dialog for nodes? A) Ctrl‑Space B) Ctrl‑Shift‑F C) Ctrl‑Spacebar (or ⌘‑Space on macOS) D) Alt‑S Answer: C Explanation: Ctrl‑Space (or ⌘‑Space) opens the quick‑search palette, allowing you to locate nodes without scrolling. Question 4. When importing a flow via the clipboard, which format must the data be in? A) YAML B) XML C) JSON D) CSV Answer: C Explanation: Node‑RED stores flows as JSON; the clipboard import expects a JSON string representing one or more nodes. Question 5. Which Git operation in the Project feature creates a new line of development without affecting the current flow? A) Commit B) Merge C) Branch D) Tag
Answer: C Explanation: Creating a branch spawns an independent line of history; you can edit flows on that branch while the original remains unchanged. Question 6. In a Change node, what does the “Move” action do? A) Deletes a property B) Copies a property without removing the source C) Transfers a property’s value to another location and removes it from the original D) Renames a property only Answer: C Explanation: “Move” takes the value from a source property, assigns it to a target property, and deletes the source. Question 7. Which node would you use to route messages based on a regular expression applied to “msg.topic”? A) Switch B) Change C) Filter D) Split Answer: A Explanation: The Switch node can evaluate property values using exact matches, numeric comparisons, or regular expressions. Question 8. What is the purpose of the JSONata expression “payload.temperature > 30? 'hot' : 'cool'” inside a Change node? A) Convert temperature to Fahrenheit B) Set a new property based on the temperature C) Delete the payload property D) Append the string “hot” or “cool” to the payload Answer: B Explanation: JSONata allows inline conditional logic; this expression creates a new value (“hot” or “cool”) depending on the temperature. Question 9. When a Split node receives an array, how many messages does it emit by default? A) One message containing the whole array B) One message per array element C) Two messages – first and last element D) No messages; it only logs the array Answer: B
Question 14. To use the “moment” NPM package inside a Function node, which file must you edit? A) settings.js B) flow.json C) package.json D) nodes.json Answer: A Explanation: settings.js contains the “functionExternalModules” array; adding “moment” there allows the Function node to require it. Question 15. When configuring an MQTT In node, which QoS level guarantees that a message is delivered exactly once? A) 0 B) 1 C) 2 D) 3 Answer: C Explanation: MQTT QoS 2 implements a two‑phase handshake ensuring exactly‑once delivery, at the cost of higher overhead. Question 16. Which node creates a REST endpoint that listens for HTTP POST requests? A) http request B) http in C) http response D) http request (GET) Answer: B Explanation: The http in node defines an inbound HTTP endpoint; its method can be set to POST to accept incoming data. Question 17. In a WebSocket out node, what does the “url” field represent? A) The address of the remote server to connect to B) The local file path for storing messages C) The MQTT broker URL D) The HTTP endpoint for the dashboard Answer: A Explanation: The WebSocket out node initiates a client connection to the specified WebSocket URL, sending messages downstream.
Question 18. Which database node would you use to execute a parameterized SELECT query against a PostgreSQL server? A) mysql node B) sqlite node C) postgresql node D) mongodb node Answer: C Explanation: The postgresql node provides a query interface for PostgreSQL, supporting parameter binding for safe SELECT statements. Question 19. In the dashboard, which widget type is best suited for displaying a live numeric value with a colored arc? A) Chart B) Gauge C) Text input D) Switch Answer: B Explanation: The Gauge widget visualizes a single numeric value as a needle or colored arc, ideal for real‑time indicators. Question 20. How can you dynamically hide a dashboard group from the UI? A) Set “group.visible = false” in a template node B) Send a message with “msg.hide = true” to a UI control node C) Include “ui_control” node with “hide” property D) Use the “ui_template” node to write CSS that sets “display:none” Answer: C Explanation: The ui_control node accepts messages that can hide, show, enable, or disable groups, tabs, or individual widgets. Question 21. What does the “status” property of a node object represent? A) The node’s configuration B) A visual indicator shown beneath the node in the editor C) The HTTP status code returned D) The memory usage of the node Answer: B Explanation: node.status({fill:"green",shape:"dot",text:"ready"}) displays a small colored dot and text below the node, useful for runtime feedback.
Question 26. Which property of a node’s configuration determines whether the node is shared across all flows in a project? A) “category” B) “type” C) “z” (flow id) D) “shared” flag in the palette Answer: C Explanation: The “z” property holds the flow’s identifier; nodes with the same “z” belong to the same flow, while global configuration nodes are not tied to a specific flow. Question 27. In the Palette Manager, what does the “Update All” button do? A) Refreshes the list of available nodes from npm B) Installs the latest version of every installed node C) Clears the local node cache D) Re‑loads the Node‑RED editor UI Answer: B Explanation: “Update All” checks each installed node for newer versions on npm and upgrades them automatically. Question 28. Which node can convert a JavaScript object into a JSON string without using a Function node? A) Change B) JSON node (to JSON) C) Template D) Switch Answer: B Explanation: The JSON node has two modes – “to JSON” (object → string) and “from JSON” (string → object). Question 29. When using the “http request” node to call an external API, which option enables you to set custom HTTP headers? A) “Method” field B) “URL” field C) “Headers” property in the node’s configuration D) “Payload” field Answer: C Explanation: The node’s configuration includes a “Headers” section where you can add key‑value pairs to be sent with the request.
Question 30. What does the “msg._msgid” property represent? A) The unique identifier of the node that created the message B) The timestamp when the message was generated C) A random UUID assigned to each message for tracking D) The MQTT client identifier Answer: C Explanation: Node‑RED automatically adds a UUID string to every message as msg._msgid, allowing you to trace the message through the flow. Question 31. Which node type can be used to store a value that is shared by all users of a dashboard group? A) Global Context B) Flow Context C) UI Control D) UI Template Answer: A Explanation: Global context is accessible from any node, including dashboard widgets, making it suitable for shared state across users. Question 32. In a Function node, what does the statement “return null;” achieve? A) Sends a message with a null payload B) Stops the flow from sending any message onward C) Clears the node’s status D) Triggers the Catch node Answer: B Explanation: Returning null (or undefined) tells Node‑RED not to forward a message from that node, effectively halting that branch. Question 33. Which of the following is NOT a built‑in node category in the default palette? A) Input B) Storage C) Analyse D) Network Answer: C Explanation: The default categories are Input, Output, Function, Social, Storage, Network, etc.; “Analyse” is not a standard category. Question 34. What is the effect of enabling “adminAuth” in settings.js? A) Allows anonymous access to the editor B) Requires a username/password to open the editor UI C) Encrypts all flow files on disk D) Disables the dashboard UI
Explanation: ui_template provides a raw HTML/AngularJS environment, enabling developers to build bespoke UI components beyond the standard widgets. Question 39. In a Switch node, what does the “otherwise” rule represent? A) A rule that matches every message B) A default path for messages that didn’t match any previous rule C) A rule that stops processing D) A rule that logs the message to the debug console Answer: B Explanation: The “otherwise” clause catches any message that fails all earlier conditions, routing it to a designated output. Question 40. Which property of the “http response” node determines the status code sent back to the client? A) “payload” B) “statusCode” C) “headers” D) “topic” Answer: B Explanation: Setting msg.statusCode (or configuring the node) defines the HTTP response code (e.g., 200, 404). Question 41. When using the “join” node in “manual” mode with “key/value pairs”, what data structure does it output? A) An array B) A string C) An object D) A Buffer Answer: C Explanation: Manual key/value mode builds an object where each incoming message’s property becomes a key in the resulting object. Question 42. Which node is specifically designed to work with the Redis key‑value store? A) redis out B) redis in C) redis node (both in/out) D) redis client Answer: C Explanation: The redis node provides both input and output capabilities for interacting with a Redis server.
Question 43. What is the purpose of the “node-red-contrib‑cron-plus” node? A) To schedule messages using cron syntax B) To parse JSON strings C) To provide MQTT bridging D) To generate random numbers Answer: A Explanation: cron-plus allows you to define cron‑style schedules that trigger flows at specific times or intervals. Question 44. In the dashboard, which widget supports real‑time streaming of line charts from an array of numbers? A) Gauge B) Chart (line) C) Text D) Slider Answer: B Explanation: The Chart widget (set to line type) can receive an array of numeric values and update the chart in real time. Question 45. Which node can be used to group several nodes together so they can be moved as a single unit? A) Subflow B) Link C) Group (in editor) D) Tab Answer: C Explanation: The editor’s “Group” feature lets you select multiple nodes, assign them to a visual group, and move them together; it does not affect runtime logic. Question 46. What does the “msg.parts” property indicate when using the Split node? A) The total number of parts in the original message B) The current part’s index C) Both total count and index D) It is not used by Split Answer: C Explanation: Split adds a “msg.parts” object containing “id”, “index”, and “count” to help downstream nodes re‑assemble messages with Join. Question 47. Which of the following is a valid way to store a secret API key securely in Node‑RED? A) Hard‑code it in a Function node B) Place it in the flow JSON C) Use the “credential” feature of a configuration node D) Store it in a global variable
Explanation: Deleting a non‑existent property is a no‑op; Node‑RED does not raise an exception. Question 52. Which of the following node types can directly publish messages to an MQTT broker? A) mqtt in B) mqtt out C) mqtt request D) mqtt bridge Answer: B Explanation: The mqtt out node is designed to send (publish) messages to a configured broker. Question 53. What is the purpose of the “msg.topic” property in many input nodes? A) To carry the MQTT topic or HTTP endpoint address B) To store the node’s version C) To define the node’s UI label D) To set the node’s status text Answer: A Explanation: msg.topic is commonly used to indicate the source identifier (e.g., MQTT topic, HTTP path), enabling downstream routing. Question 54. When using the “http request” node to call a JSON API, which option automatically parses the response into an object? A) “Return as a Buffer” B) “Return as a string” C) “Return as a parsed JSON object” D) “Return as binary” Answer: C Explanation: Selecting “a parsed JSON object” makes the node automatically JSON.parse the response body. Question 55. Which node can be used to create a simple counter that increments each time a message passes through? A) Counter (built‑in) B) Change C) Function D) Increment Answer: C Explanation: In a Function node you can store a count in flow or global context and increment it on each message; there is no dedicated counter node.
Question 56. What does the “ui_control” node’s “msg.control” property accept to hide a dashboard tab? A) {tab: "hide"} B) {tab: "tabName", hide: true} C) {hide: "tabName"} D) {tab:"tabName", action:"hide"} Answer: B Explanation: The node expects an object with the tab name and a boolean hide flag; {tab:"myTab",hide:true} hides the specified tab. Question 57. In the Node‑RED editor, what does the “Deploy” button’s dropdown option “Full” do? A) Deploy only changed nodes B) Deploy all flows, even unchanged ones C) Deploy only the selected tab D) Deploy to a remote server Answer: B Explanation: “Full” forces a complete redeployment of the entire flow set, clearing previous runtime state. Question 58. Which node is specifically designed to read from a serial port? A) serial in B) serial out C) serial in/out D) serial port node Answer: C Explanation: The serial in/out node provides both input and output capabilities for a configured serial device. Question 59. When using the “join” node in “automatic” mode, what triggers the node to emit its combined message? A) Reception of a message with “msg.complete = true” B) When the number of parts equals the count in msg.parts C) After a configurable timeout D) When a manual “send” button is pressed Answer: B Explanation: Automatic mode tracks msg.parts.count and emits once all expected parts have arrived.
immediately B) Stops the node permanently C) Changes the delay interval D) Sends a reset status to the debug console Answer: A Explanation: Setting msg.reset to true resets the rate‑limit timer, effectively allowing the next message to bypass the waiting period. Question 65. Which dashboard widget can display raw HTML content, including custom CSS classes? A) ui_template B) ui_text C) ui_gauge D) ui_chart Answer: A Explanation: ui_template renders arbitrary HTML, enabling injection of custom markup and styling. Question 66. In a Function node, how can you send a message to only the second output without affecting the first? A) return [{payload:""}, {payload:"second"}]; B) node.send([null, msg]); C) return null; node.send(msg,2); D) Use node.send([null,msg]); Answer: B Explanation: node.send([null, msg]) sends undefined to output 1 (i.e., nothing) and the message to output 2. Question 67. Which node type can be used to debounce rapid fire events, ensuring only the last event in a burst is processed? A) Delay (set to “debounce”) B) RBE (Report By Exception) C) Switch D) Catch Answer: A Explanation: The Delay node’s “debounce” mode resets its timer on each incoming message, emitting only the final one after the interval. Question 68. What is the purpose of the “msg._event” property that appears when using the “inject” node with “repeat” enabled? A) It contains the timestamp of injection B) It indicates
the type of event that triggered the injection C) It stores the node’s internal ID D) It holds the repeat interval value Answer: B Explanation: msg._event tells downstream nodes that the message originated from a timed inject event, useful for distinguishing sources. Question 69. Which node provides a visual representation of a flow’s performance metrics (messages processed per second, memory usage, etc.)? A) status node B) debug node C) node‑red‑contrib‑monitor D) dashboard chart node Answer: C Explanation: The node‑red‑contrib‑monitor (or similar) offers a UI panel showing runtime statistics. Question 70. When a Flow is deployed with “Modified Nodes” option, what happens to nodes that were not changed? A) They are removed B) They remain running with their current state C) They are restarted D) They are disabled Answer: B Explanation: “Modified Nodes” only restarts nodes that have changed; all others continue unchanged, preserving context. Question 71. Which property of the “mqtt in” node determines whether retained messages are received on subscription? A) “QoS” B) “Retain” checkbox C) “Subscribe” mode D) There is no such property; retained messages are always delivered Answer: D Explanation: MQTT brokers automatically send retained messages when a client subscribes; the node has no toggle for this behavior.
Answer: A Explanation: websocket in creates a server endpoint; websocket out can send messages to connected clients. Question 77. When using the “file in” node, which encoding option should you select to read a binary image file without corruption? A) UTF‑8 B) Base64 C) None (binary) D) ASCII Answer: C Explanation: Selecting “binary” (or leaving encoding empty) reads raw bytes, preserving the image data. Question 78. What is the effect of setting “msg._socket” in a “tcp in” node’s output? A) It provides the underlying socket object for further manipulation B) It changes the destination IP address C) It closes the TCP connection D) It encrypts the payload Answer: A Explanation: msg._socket contains the Net.Socket instance, allowing custom read/write operations beyond the node’s default behavior. Question 79. Which node can be used to create a simple “ping” to test network connectivity? A) ping node B) exec node (with “ping” command) C) http request node D) tcp request node Answer: B Explanation: The exec node can run the system’s ping command and return the result as a message. Question 80. In a dashboard group, what does the “layout” option “vertical” control? A) The order of widgets within the group B) The color theme of the group C) Whether the group appears on the left or right side D) The spacing between tabs Answer: A
Explanation: “vertical” layout stacks widgets one after another vertically inside the group. Question 81. What is the purpose of the “msg._event” property that appears when a “http in” node receives a request? A) Indicates the HTTP method B) Stores the request URL C) Marks the message as an HTTP event for debugging D) Contains the raw request headers Answer: C Explanation: msg._event is added by Node‑RED to help identify the source event type (e.g., http, inject) during debugging. Question 82. Which node can be used to enforce that only one instance of a flow runs at a time across a cluster? A) lock node B) mutex node C) single node D) barrier node Answer: A Explanation: The lock node provides a distributed lock mechanism, ensuring exclusive execution across multiple Node‑RED instances. Question 83. When a Function node throws an error, which node can automatically capture it without breaking the flow? A) Catch B) Status C) Debug D) Link out Answer: A Explanation: The Catch node listens for errors emitted by nodes in its scope and routes them to a defined path. Question 84. In the Palette Manager, what does the “Search” field accept besides node names? A) Node descriptions and keywords B) Only exact node IDs C) Only author names D) Only version numbers Answer: A Explanation: The search matches against node name, description, and keywords, making it easier to find relevant community nodes.