Volver a la página principal
viernes 20 septiembre 2024
13

Cómo utilizar Multer en Node.js

Multer es un middleware de Node.js que facilita la carga de archivos en aplicaciones basadas en Express. Se utiliza principalmente para manejar formularios multipart/form-data, el formato más común para la subida de archivos en la web.

Instalación de Multer en Node.js

Para utilizar Multer, primero debes instalarlo en tu proyecto:

npm install multer

Configuración básica de Multer

1. Importa Multer y configura el almacenamiento: Define cómo y dónde quieres almacenar los archivos cargados.

2. Aplica Multer como middleware: Usar Multer dentro de las rutas de Express para gestionar las subidas de archivos.

Aquí un ejemplo básico:

const express = require('express');
const multer = require('multer');
const app = express();

// Configuración del almacenamiento
const storage = multer.diskStorage({
  destination: function (req, file, cb) {
    cb(null, 'uploads/'); // Carpeta donde se guardarán los archivos
  },
  filename: function (req, file, cb) {
    const uniqueSuffix = Date.now() + '-' + Math.round(Math.random() * 1E9);
    cb(null, file.fieldname + '-' + uniqueSuffix);
  }
});

const upload = multer({ storage: storage });

// Ruta para subir un archivo
app.post('/upload', upload.single('archivo'), (req, res) => {
  res.send('Archivo subido exitosamente.');
});

app.listen(3000, () => {
  console.log('Servidor en funcionamiento en http://localhost:3000');
});

Algunos ejemplos

Subir múltiples archivos

Multer también permite subir múltiples archivos a la vez usando upload.array():

app.post('/upload-multiple', upload.array('archivos', 10), (req, res) => {
  res.send('Archivos subidos exitosamente.');
});

Validación de tipo de archivo

Puedes restringir los tipos de archivos usando el campo fileFilter:

const upload = multer({ 
  storage: storage,
  fileFilter: function (req, file, cb) {
    if (file.mimetype !== 'image/jpeg') {
      return cb(new Error('Solo se permiten archivos JPEG'), false);
    }
    cb(null, true);
  }
});

Documentación oficial

Para más información sobre el uso avanzado de Multer, puedes consultar la documentación oficial de Multer.

Compartir:
Creado por:
Author photo

Jorge García

Fullstack developer