Estoy creando una aplicación de escritorio usando angular2 y electron. Este cliente necesita descargar archivos zip de un servidor usando la biblioteca de solicitudes .
Poder descargar archivos es solo el primer paso. La aplicación cliente también deberá poder enviar archivos zip al servidor. En comparación con lo fácil que es usar los ejemplos a continuación, no entiendo qué está bloqueando esto.
Para que la biblioteca fs y path funcionen en electron, tuve que hacer una solución en index.html. esta solución funciona actualmente y puedo crear carpetas dentro de mi sistema de archivos con fs:
<script> window.fs = require("fs"); window.path = require("path"); </script>Servidor
const restify = require('restify'); const server = restify.createServer(); const fs = require('fs'); server.post('/download', function(req, res) { fs.createReadStream("C:\\test\\test.zip").pipe(res); }); server.listen(1338, function() { console.log('server started up on port 1338'); });Cliente de trabajo
let request = require("request"); let path = require("path"); let fs = require("fs"); request.post("http://localhost:1338/download").on("response", (response) => { let zipLocation = path.join("/test", "response.zip"); let writeStream = fs.createWriteStream(zipLocation); writeStream.on("finish", () => { console.log("finished"); }).on("error", (err) => { console.log("err: ", err.message); }); response.pipe(writeStream); }).on("error", (err) => { console.log("req err: ", err.message); });Pero cuando introduzco este código de cliente en la aplicación de electrones angular2. me sale un error:
err: Invalid non-string/buffer chunkTengo la biblioteca de solicitudes incluida en mi aplicación angular como tal:
import * as request from 'request';Este problema podría estar relacionado con la biblioteca de solicitudes. en la respuesta de no hay encabezados. Pero no puedo decir con seguridad
response.headers // is a empty object: {}¿Alguien puede decirme el motivo por el cual no puedo transmitir archivos desde el servidor al sistema de archivos que ejecuta la aplicación electrónica?
ACTUALIZAR:Después de intentar implementar la carga de archivos, recibí el mismo error:
Invalid non-string/buffer chunk