Команда оболочки выполняется асинхронно.Вам необходимо отправить ответ из функции обратного вызова, чтобы он отправлял результат по завершении выполнения.
cmd.stdout.on('data', (data) => {
output += data;
res.send(output);
});
Может быть чище сделать это так:
const exec = require('child_process').exec;
app.post('/plan',(req, res) => {
exec('dir', (error, stdout, stderr) => {
if (error) {
res.status(500).send(stderr);
return;
}
res.send(stdout);
});
});