Skip to content

Instantly share code, notes, and snippets.

@Kiri23
Created December 13, 2017 22:41
Show Gist options
  • Save Kiri23/699f91830d2defbd46df1ade0c5b1fed to your computer and use it in GitHub Desktop.
Save Kiri23/699f91830d2defbd46df1ade0c5b1fed to your computer and use it in GitHub Desktop.
Node.js download file to public
var filename = __dirname+'/download2.pdf'
var fs_write_stream = fs.createWriteStream(filename);
// De la unica forma que pueden ocurrir errores aqui es que uno de los dos stream no se pueda abrir para descargar o para escribir archivos
/** create read stream */ // Esta es la parte que yo te digo. Crea un ReadStream.
var readstream = gfs.createReadStream({
// the file to download
filename: files[0].filename,
root: "templateFiles" // name of collection where all files resides in mongdb
});
// Como la logica funciona para bajar este archivo, es que primero yo abro un archivo y lo guardo localmente con el file system de node.js. Luego yo escribo a ese archivo y cuando yo termino de escribir a ese archivo, lo descargo con el express helper method y luego que lo descarque, lo borro localmente de la computadora.
readstream.pipe(fs_write_stream);
fs_write_stream.on('close',()=>{
console.log("Cerrando de escribir imagen")
return res.download(filename,files[0].metadata.originalname,(err)=>{
if (err){
console.log(err.message,'\n')
// console.log(err)
err.customMsg = "Error al descargar el archivo. Intentelo nuevamente"
return next(err)
}else {
console.log("Se guardo el objeto.")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment