Я пытаюсь реализовать программу драйвера, которая будет кормить мои объекты JSON процесса. По сути, мне нужно взять сообщения из CSV-файла и опубликовать их через STOMP. Затем у меня будет подписчик, который будет прослушивать новые сообщения, делать расчеты и отправлять данные в базу данных Монго.
const Sleep = require('sleep');
const CSV = require('csvtojson');
const MongoClient = require('mongodb').MongoClient;
const ParseJson = require('parse-json');
const Stomp = require('stomp-client');
const StompClient = new Stomp([hostname], 61613, [username], [password]);
var db;
MongoClient.connect(url, { useNewUrlParser: true }, (err, database) => {
if (err) { throw err; }
db = database.db([db_name]);
});
StompClient.connect( (connected, rejected) => {
if ( rejected ) { throw rejected; }
StompClient.subscribe([destination], (body, headers) => {
console.log("Received message", body);
});
CSV()
.fromFile([file_path])
.then( (jsonArray) => {
jsonArray.forEach( (json) => {
StompClient.publish([destination], json);
Sleep.sleep(1);
});
});
});
Я получаю заголовки сообщений, но тело всегда пусто. Если я жестко закодирую сообщение, то получаю тело. Это как-то связано с обработкой результатов в Обещании? Как я могу решить эту проблему?