When building APIs, the need to upload files is expected, which can be images, text documents, scripts, pdfs, among others. No desenvolvimento desta funcionalidade, alguns problemas podem ser encontrados, como o número de arquivos, tipos de arquivos válidos, tamanhos destes arquivos, e vários outros. E para nos salvar destes problemas temos a Biblioteca Multer. Multer é um nó.middleware js para o tratamento de multipart/form-data que é usado para enviar arquivos em formulários.

primeiros passos

o primeiro passo é criar um projeto NodeJS no seu computador.

adicionando Express

no seu terminal, escreva o seguinte comando:

yarn add express

* Você também pode usar o NPM para a instalação

criar um arquivo chamado app.js dentro da pasta src/. O próximo passo é iniciar nosso servidor expresso em nosso app.js

const express = require("express")const app = express()app.listen(3000 || process.env.PORT, () => { console.log("Server on...")})

adicionando o Multer

com o projeto criado, configurado e com o Express instalado, adicionaremos o multer ao nosso projeto.

yarn add multer

o próximo passo é importar o multer para o nosso ficheiro app.js.Estamos quase lá. Agora crie uma pasta chamada uploads onde guardaremos os arquivos enviados.

Configurando e validando o upload

agora estamos em um estágio muito importante que é a configuração de diskStorage. DiskStorage é um método disponibilizado por multer onde configuramos o destino do arquivo, o nome do arquivo e também podemos adicionar validações sobre o tipo do arquivo. Estas configurações estão de acordo com as necessidades do seu projeto. Abaixo deixo um exemplo elementar da configuração.

const storage = multer.diskStorage({ destination: (req, file, cb) => { cb(null, "uploads/") }, filename: (req, file, cb) => { cb(null, Date.now() + "-" + file.originalname) },})

Na configuração acima, mencionamos o destino para os arquivos enviados e também alterar o nome do arquivo .No excerto de código acima, criamos 2 rotas de postagem para o envio de arquivos. A primeira rota /upload/single recebe apenas um único arquivo, note que a variável uploadStorage recebe nossas configurações de diskStorage. Como um middleware na rota, ele chama o método single para carregar um único arquivo. A rota /upload/multiple recebe vários arquivos, mas com um limite máximo de 10 arquivos, note que a variável uploadStorage agora chama o método` Array ‘ para carregar vários arquivos.Com todas as configurações feitas, nossa pequena API já é capaz de armazenar os arquivos enviados.Agora é contigo!

Deixe uma resposta

O seu endereço de email não será publicado.