node.js - 如何在节点js中使用拆分功能
问题描述
我在客户端组合了两个字符串以发布主题
client.publish(topic,payload = String(message)+","+String(weather))
我在服务器端将它们作为字符串接收但这是两条不同的消息,我必须在两个不同的 http 地址发送我想在服务器端拆分消息但是拆分功能不起作用
这是错误信息。
TypeError:无法读取未定义的属性“拆分”
//MQTT publisher
var mqtt = require('mqtt')
var fetch = require('node-fetch')
var client = mqtt.connect('mqtt://localhost:1884')
var topic = 'local/temperature'
//var message = 'The status of weather station'
client.on('connect',()=>{
setInterval(async function(req,res){
let weatherResponse = await fetch("https://api.openweathermap.org/data/2.5/weather?q=villingen-schwenningen,de&units=metric&appid=4b66b441cf82f4bca0467ecebb363a79");
let weatherObj = await weatherResponse.json()
let temperature = weatherObj.main.temp
let message = JSON.stringify(temperature)
let weather = JSON.stringify(weatherObj)
client.publish(topic,payload = String(message)+","+String(weather))
console.log(payload)
console.log('Temperature value sent!')
console.log('The temperature is',message)
},3000)
})
//MQTT server (mosca broker)
const mosca = require("mosca")
var temperature = 0;
moscaSettings = {
host: "localhost",
port: 1884,
persistence: { factory: mosca.persistence.Memory }
}
var server = new mosca.Server(moscaSettings);
server.on('clientConnected', function(client) {
console.log('client connected', client.id);
});
server.on('published', function(packet, client) {
console.log('Published', packet.payload.toString());
// I want to split the payload here
//console.log(info);
});
server.on('ready', setup);
function setup() {
console.log('Mosca server is up and running on port '+ moscaSettings.port);
}
解决方案
推荐阅读
- javascript - 如何使用 URI 方案将 ms-office 文档保存在其他文档服务器中
- mysql - 无法在 Maria DB 中存储日文字符
- qt - 对 QML 分析器信息感到困惑?
- javascript - 为什么我的工具提示没有触发?(一般事件绑定功能)
- haskell - 无法将“可能”类型与“IO”匹配
- javascript - 将字段推送到对象数组的每个元素(MongoDB)
- php - Laravel 更新请求 MethodNotAllowedException
- javascript - 路由器事件在页面刷新时使某些功能失败
- python - 为什么只有第一个字典被写入 csv 文件?
- c# - 如何在 NSUserDefaults 中存储 c# 列表