¿Cómo agregar autenticación en las cargas de archivos usando Node.js?

Hay varias formas de cargar archivos y aplicarles autenticaciones. La forma más fácil de hacerlo es usar un módulo de Node llamado multer. Podemos agregar autenticación restringiendo a los usuarios en la carga de archivos, ya que solo pueden cargar pdf y el tamaño del archivo debe ser inferior a 1 Mb. 

Hay muchos módulos disponibles en el mercado, pero multer es el más popular. Nos brinda diferentes opciones para personalizar y restringir qué tipo de formatos de archivo queremos.

Requisitos previos : debe saber cómo funciona la carga de archivos en multer .

Instalación del módulo multer:

Paso 1: puede multer ejecutando el siguiente comando

npm i multer

Paso 2: puede verificar la versión del módulo ejecutando el siguiente comando.

npm version multer

Paso 3: después de eso, puede simplemente crear una carpeta y agregar un archivo y ejecutar el archivo creado con el siguiente comando.

node <filename>.js

Paso 4: Módulo requerido: debe incluir el módulo multer en su archivo usando estas líneas.

const multer = require('multer');

1. Restringir el usuario por tamaño de archivo:

Ejemplo: Multer nos proporciona una propiedad llamada límites en la que podemos definir el tamaño del archivo y 

Javascript

// Requiring the multer module in our project
const multer = require('multer');
const upload = multer({
    dest: 'src',
    limits: {
  
        // Here we have to give size in bytes 
        fileSize: 1000000;
    }
})

Producción:

En el código anterior, estamos restringiendo al usuario al especificar que el programa solo tomará archivos que tengan un tamaño menor o igual al tamaño especificado.

En la imagen de arriba, estamos tratando de cargar una imagen que tiene más de 1 MB, por lo que nos está dando un error.

2. Restricción por tipo de archivo

Ejemplo: Multer tiene una función llamada fileFilter que nos da acceso a los objetos de archivo y luego podemos realizar las operaciones necesarias en él.

Javascript

// Requiring the multer module in our project
const multer = require('multer');
const upload = multer({
  
    // dest is the destination where file will be stored
    dest: 'src',
    fileFilter(req, file, cb) {
  
        // We are providing a regular expression 
        // which accepts only jpg,jpeg and png
        if (!file.originalname.match(/\.(png|jpg|jpeg)$/)) {
            return cb(new Error('Upload an image'));
        }
        cb(undefined, true);
    }
})

Producción:

En el ejemplo anterior, estamos cargando un archivo doc pero el multer no lo acepta ya que solo aceptamos imágenes.

Publicación traducida automáticamente

Artículo escrito por ankit1210 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *