#express #neutralinojs
Вопрос:
Я довольно новичок в JS и Node, так что это может быть глупый вопрос. Я везде смотрю и не могу понять, как получить ответ от Сервера. Цель состоит в том, чтобы иметь возможность выполнить индикатор выполнения, поэтому мне нужно вернуть байты загрузки / всего байт.
На данный момент я могу получить информацию, но только на сервере, я не могу понять, как отправить ее на внешний интерфейс.
Вот что я сделал до сих пор.
Server.js
app.get('/', async (req, res) =gt; { const response = fetch(`https://api.github.com/repos/${options.gitUser}/${options.gitRepo}/releases/latest`) .then(response =gt; response.json()).then(data =gt; { json = data; }) .then(() =gt; { let zip; for (i = 0; i lt; json['assets'].length; i ) { if (json['assets'][i]['name'] === `${options.softName}`) zip = json['assets'][i]; } let received_bytes = 0; let total_bytes = 0; var req = request( { method: 'GET', uri: zip['browser_download_url'] } ); var out = fs.createWriteStream(`C:\Users\${options.userName}\AppData\Roaming\Camnor\Camsoft\${options.softName}`); req.pipe(out); req.on('response', data =gt; { total_bytes = parseInt(data.headers['content-length']); }); req.on('data', chunk =gt; { received_bytes = chunk.length; console.log(received_bytes, total_bytes); lt;== The data I want in the front end }); }); })
На стороне клиента я просто звоню
Нейтралино.ос.Исполнительная команда(‘server-win.exe’); const ответ = выборка(‘http://localhost:3000″) Я много чего пробовал, но не могу понять, как отправить информацию на передний план. ZIP-файл загружается правильно в нужную папку. Все остальное работает. Спасибо
Комментарии:
1. Основная схема такова:
app.get(‘/route/‘, (req, res) =gt; res.send(‘put here message for client’)
Вы должны использовать res изapp.get
обратного вызова.2. Дело в том, что резюме будет отправлено только после завершения выполнения. Если вы посмотрите на мой код, последняя строка-это та часть кода, которую я хочу вернуть.
3. Почему бы вам не отправить его вместе с
res.send({received_bytes, total_bytes})
нами ? Или вы хотите отправить его в качестве индикатора выполнения?