У меня есть функция, которая нужна для получения всех доступных разделов на компьютере. Но она работает асинхроно, поэтому возникает ситуация, что я не могу получить и отправить данные из нее на свое веб приложение.
Как исправить эту проблему? возможно сущетсвуют альетнативные решания моей задачи ?
function ListDrives (){
const list = spawn('cmd');
return new Promise((resolve, reject) => {
list.stdout.on('data', function (data) {
const output = String(data)
const out = output.split("\r\n").map(e=>e.trim()).filter(e=>e!="")
if (out[0]==="Name"){
resolve(out.slice(1))
}
// console.log("stdoutput:", out)
});
list.stderr.on('data', function (data) {
// console.log('stderr: ' + data);
});
list.on('exit', function (code) {
console.log('child process exited with code ' + code);
if (code !== 0){
reject(code)
}
});
list.stdin.write('wmic logicaldisk get name\n');
list.stdin.end();
})
}
серверная часть
<code lang="javascript">
router.post('/drives', (req, res) => {
console.log("HEEEEEEEEEEEEEE", disks);
res.send(JSON.stringify(disks));
})
Часть на вебе
<code lang="javascript">
fetch('/drives', {
method: 'POST', // *GET, POST, PUT, DELETE, etc.
mode: 'cors', // no-cors, *cors, same-origin
headers: {
'Content-Type': 'application/json',
'Accept': 'application/json'
},
})
.then(response => response.json())
.then(json => this.directories = json)
</code>