You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node-RED写入传感器数据到数据库出现undefined值如何解决?

问题原因

你接收的消息结构中,温度值直接存储在msg.payload顶层字段,湿度值存储在和msg.payload平级的msg.humidity字段,你的代码错误尝试从msg.payload下读取不存在的payload、humidity子属性,所以拿到的返回值为undefined。同时你原有代码中flow.set方法的第二个参数错误包裹了引号,会导致存入flow上下文的是固定字符串而非变量实际值。

修正后的代码
// 修正取值路径,同时取消第二个参数的引号,正确读取变量值存入flow上下文
flow.set("payload", msg.payload);
flow.set("humidity", msg.humidity);

var date = new Date().getTime();
// 修正SQL拼接时的取值路径
msg.topic= "insert into sensor(temp, humidity, date) values('"+msg.payload+"', '"+msg.humidity+"', '"+date+"')";

return msg;
补充说明

如果没有将温湿度存储到flow全局上下文的需求,可以直接删除两行flow.set相关代码,不影响SQL语句生成和数据库写入逻辑。生产环境使用时建议更换为参数化查询方式生成SQL,避免直接拼接字符串带来的SQL注入风险。

内容的提问来源于stack exchange,提问作者이승훈

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 15:24:02