NodeJS эквивалент появления для команды терминала - PullRequest
0 голосов
/ 03 августа 2020

Я пытаюсь выучить 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;
})

Это те же функции, что и выше, чтобы поймать ошибку и закрыть.

Любой ввод или предложения будут очень признателен. Спасибо!

...