Explicación : Entonces, básicamente estoy tratando de crear un sitio web express.js donde puedo cargar archivos y se guardan en la base de datos y los usuarios pueden descargarlos más adelante. Entonces, mi idea era convertir el archivo (.jar, .txt y .json) en datos de búfer y almacenarlo en MongoDB. Y luego obtenga los datos del búfer de MongoDB y descargue ese archivo. Entonces, leí los documentos y no pude encontrar nada que haga esto.
Código : realmente no hay nada que mostrar, tengo una variable que tiene datos de búfer y estoy usando "express.js@4.17.1".
Para la prueba, actualmente estoy cargando el archivo usando multer y una vez que hago clic en "cargar", estoy tratando de descargar el mismo archivo para ahorrar tiempo (en lugar de guardar y obtener de la base de datos), por lo que los datos del búfer se almacenan actualmente en "req .archivo.búfer". Cuando registro "req.file", obtengo esto
console.log(req.file) { fieldname: 'fileupload', originalname: 'jg.txt', encoding: '7bit', mimetype: 'text/plain', buffer: <Buffer >, size: 0 }Conclusión : quiero convertir los datos del búfer (req.file.buffer) en un archivo descargable que el usuario pueda descargar (más adelante, hágalo de tal manera que pueda enviarse como un archivo adjunto de correo electrónico, pero ambos requieren una ruta de archivo y nombre, así que una vez que descubra cómo hacer lo de express.js, también puedo hacer lo del correo). He leído muchos artículos que primero guardan los datos del búfer en un archivo y luego los cargan, pero quiero prescindir de eso.
res.set({ "Content-Type": <content type of your file>, "Content-Disposition": "attachment; filename=<name of your file>" }); res.end(req.file.buffer);Esto primero establece los encabezados que hacen que el navegador descargue el archivo y luego envía el contenido del archivo.
Pero su req.file.buffer parece ser un búfer vacío, por lo que la carga quizás no haya funcionado.