Невозможно проанализировать JSON из сообщения MQTT в брокере - PullRequest
0 голосов
/ 19 апреля 2020

Я собираю MQTT-сервер, используя Mosca, и пытаюсь проанализировать MQTT-сообщение на JSON для целей хранения базы данных.

Код в «опубликованном» обратном вызове ниже

server.on('published', (packet, client) => {
    let { payload } = packet;
    if(payload) {
        let payloadString = payload.toString();
        let payloadJson = JSON.parse(payloadString);
        console.log(payloadJson)
    }
});

Пример JSON Строка:

{"_ id": "5e928105156c40000006f9e9", " температура ": 33," влажность ": 64,9}

Но я получил ошибку в строке JSON.parse

SyntaxError: Неожиданный токен c в JSON в позиции 2

Как мне сделать, чтобы правильно проанализировать это сообщение?

1 Ответ

0 голосов
/ 22 апреля 2020

Похоже, вы используете MongoDB для своего проекта.

Я не знаю, что за код на стороне server.emit(), потому что вы его не предоставили.

Но попробуйте Передача .lean() перед получением данных из MongoDB решит вашу проблему.

Примерно так:

const leanDoc = await MyModel.findOne().lean();

Проверьте это также: https://mongoosejs.com/docs/tutorials/lean.html

...