Я пытаюсь выучить NodeJS. В настоящее время я изучаю разницу между exe c и spawn. Я хочу использовать spawn, чтобы выходной поток оставался непрерывным.
В терминале моя команда такова:
cd sos/exec/
.bin/sos.x --settings ..settings/nominal.json
это изменяет мой рабочий каталог и запускает вторую строку, которая является моей командой и передает путь к моему json файлу для вычислений. Затем терминал заполняется выводом моего приложения sos.
Теперь я создаю приложение JS, в котором я хочу создать кнопку для запуска вышеуказанных команд терминала для меня. Я использую spawn, поэтому весь вывод не сохраняется до завершения. Он будет добавлен в файл и сразу же выведен в журнал консоли. Это то, что у меня есть до сих пор, но я не уверен, что это правильно.
var spawn = require('child_process').spawn;
var child = spawn('cd', ['sos/exec/','./bin/sos.x','--settings', '../settings/nominal.json']) // TO DO - Input command for SOS start
// Variable to hold the output from the SOS
var sosOutput = "";
// This will catch the output stream from the SOS and encode it to uft8
child.stdout.setEncoding('utf8');
child.stdout.on('data', function(data){
// Catching output
console.log('SOS: ' + data);
// Converting data to string
data = data.toString();
// Adding it to the sosOutput file
sosOutput+=data;
})
Это те же функции, что и выше, чтобы поймать ошибку и закрыть.
Любой ввод или предложения будут очень признателен. Спасибо!