QUESTÃO 13

CAPACIDADE: Demonstrar objetos no Node-RED.

Contexto:

O Node-RED utiliza (prepared statements) para inserir dados.

Comando:

Qual objeto do Node-RED carrega os parâmetros da query SQL?

Alternativas:

A. msg.payload
B. msg.params
C. msg.topic
D. msg.query
E. msg.sql

Passo 1

O enunciado pergunta, de forma direta: “Qual objeto do Node-RED carrega os parâmetros da query SQL?”
Informações dadas:
  • Contexto: o Node-RED utiliza prepared statements (consultas preparadas) para inserir dados.
  • Pergunta única com alternativas: A. msg.payload, B. msg.params, C. msg.topic, D. msg.query, E. msg.sql.

Passo 2

Entender o que é o objeto msg no Node-RED: toda mensagem que circula entre nós é um objeto JavaScript chamado msg. Ele costuma ter propriedades com significados convencionais:
  • msg.topic: normalmente usado para carregar o texto da query SQL (a string da instrução).
  • msg.payload: campo genérico usado para transportar dados; muitos nós (incluindo os nós oficiais de banco de dados) esperam aqui os parâmetros para consultas preparadas.
  • Outras propriedades (msg.params, msg.query, msg.sql) não são propriedades padrão com comportamento universal — podem existir em fluxos específicos, mas não são o padrão adotado pelos nós oficiais mais comuns.

Passo 3

Explicar prepared statements e como o Node-RED geralmente os recebe:
  • Prepared statement = query com placeholders (por exemplo ? ou :name) onde os valores são passados separadamente para evitar injeção e permitir binding.
  • Na prática no Node-RED (por exemplo no nó MySQL oficial), o padrão é:
    • colocar a string SQL em msg.topic, por exemplo: INSERT INTO users (name, age) VALUES (?, ?)
    • colocar os valores dos placeholders em msg.payload como um array posicional: ["João", 25]
  • Então o nó pega msg.topic como a instrução e associa os elementos de msg.payload aos ? na ordem.

Passo 4

Exemplo passo a passo de uso (para você praticar na hora da prova ou em laboratório):
  1. Montar a mensagem antes de enviar ao nó de banco:
  • msg.topic = "INSERT INTO clientes (nome, email) VALUES (?, ?)";
  • msg.payload = ["Maria", "maria@exemplo.com"];
  1. Enviar msg ao nó SQL. O nó executa a query em msg.topic substituindo os ? pelos valores em msg.payload.
    Observação prática: alguns contribs/ nós diferentes podem aceitar outras convenções (por exemplo objetos nomeados), mas a convenção mais difundida e usada nos exemplos oficiais é msg.payload para os parâmetros.

Passo 5

Por que as outras alternativas estão incorretas no sentido geral/convencional:
  • msg.topic (alternativa C) contém a string da query, não os parâmetros.
  • msg.params, msg.query, msg.sql (alternativas B, D, E) não são propriedades padrão universalmente usadas pelos nós oficiais para carregar parâmetros; podem aparecer em implementações específicas, mas não é a resposta esperada num contexto padrão sobre prepared statements no Node-RED.

Resposta

A. msg.payload

Exercícios relacionados