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
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:
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.payloadcomo um array posicional:["João", 25]
- colocar a string SQL em
- Então o nó pega
msg.topiccomo a instrução e associa os elementos demsg.payloadaos?na ordem.
Passo 4
Exemplo passo a passo de uso (para você praticar na hora da prova ou em laboratório):
- Montar a mensagem antes de enviar ao nó de banco:
msg.topic = "INSERT INTO clientes (nome, email) VALUES (?, ?)";msg.payload = ["Maria", "maria@exemplo.com"];
- Enviar
msgao nó SQL. O nó executa a query emmsg.topicsubstituindo os?pelos valores emmsg.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.payloadpara 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