Express.js es un marco de enrutamiento y middleware para manejar los diferentes enrutamientos de la página web y funciona entre el ciclo de solicitud y respuesta y funciona en la parte superior del servidor node.js. En este artículo, discutiremos cómo descargar un archivo usando express.js.
Para descargar un archivo usandoexpreso.jsvamos a ver dos escenarios:
- Descargar un solo archivo usando la función res.download() que toma dos parámetros, la ruta del archivo y una función para manejar si ocurre algún error.
- Descargando varios archivos como una carpeta comprimida para esto, usaríamos el paquete npm » express-zip » que crea una carpeta comprimida usando elzip() función que toma una array de objetos como parámetro. Cada objeto tiene dos campos de ruta y nombre de archivo.
Primero inicialicemos el proyecto y discutamos cada escenario uno por uno:
Paso 1: crea un archivo “ app.j s ” e inicializa tu proyecto con npm.
npm init
Paso 2: ahora instale dos paquetes npm : » express » y » express-zip «.
npm install express npm install express-zip
Paso 3: cree un archivo » index.html » y luego cree una carpeta llamada » Archivos » dentro de la carpeta de su proyecto. En la carpeta de archivos crea los cuatro archivos de texto mencionados a continuación:
- single_gfg.txt
- multiple_one_gfg.txt
- multiple_two_gfg.txt
- multiple_tres_gfg.txt
La estructura final del proyecto se verá así :
Paso 4: Ahora codifiquemos el archivo “ index.html ”. En él crearemos dos formularios:
- Uno con la ruta GET como – ‘ /single ‘ (para manejar la solicitud de descarga de un solo archivo).
- Uno con la ruta GET como – ‘ /multipl e ‘ (para manejar la solicitud de descarga de múltiples archivos).
índice.html
HTML
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content= "width=device-width, initial-scale=1.0"> <title>Download</title> </head> <body> <br> <!-- Form to handle single file download request--> <form action="/single" method="get"> <button type="submit">Download Single File</button> </form> <br><br> <!-- Form to handle single file download request--> <form action="/multiple" method="get"> <button type="submit">Download Multiple File</button> </form> </body> </html>
Paso 5: ahora codifique el archivo » app.js «. En él, creamos funciones de solicitud GET para manejar las requests de descarga utilizando express. Usamos » express-zip » y res.download() como se mencionó al principio.
archivo app.js
Javascript
// Requiring express package for routing const express = require('express') // Creating app const app = express(); // Requiring express-zip for downloading a zip file const zip = require('express-zip'); // The folder path for the files const folderPath = __dirname+'/Files'; // GET request for single file app.get('/single',function(req,res) { console.log('single file'); // Download function provided by express res.download(folderPath+'/single_gfg.txt', function(err) { if(err) { console.log(err); } }) }) // GET request for multiple file download as zip app.get('/multiple', function(req, res) { console.log('Multiple file download') // zip method which take file path // and name as objects res.zip([ { path: folderPath+'/multiple_one_gfg.txt', name: 'one_gfg.txt'}, { path: folderPath+'/multiple_two_gfg.txt', name: 'two_gfg.txt'}, { path: folderPath+'/multiple_three_gfg.txt', name: 'three_gfg.txt'} ]) }) // GET request to the root of the app app.get('/', function(req, res){ res.sendFile(__dirname+'/index.html'); }) // Creating server at port 3000 app.listen(3000,function(req,res){ console.log('Server started to listen at 3000'); })
Paso 5: Ahora ejecute la aplicación usando su terminal.
node app.js
Salida: vaya a cualquier navegador y escriba http://localhost:3000
Puede ir a la carpeta Descargas y extraer la carpeta zip. Así es como podemos descargar archivos usando express en Node.js
Publicación traducida automáticamente
Artículo escrito por devrajkumar1903 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA