Uma das características mais importantes em muitas aplicações web modernas é a capacidade de fazer upload de arquivos. Seja para permitir que os usuários compartilhem imagens, enviem documentos ou forneçam outros tipos de arquivos, o upload de arquivos é uma característica fundamental para muitos projetos. No capítulo 20 do nosso e-book, vamos explorar como implementar essa funcionalidade em NodeJS usando a biblioteca Multer.

O Multer é um middleware para o Express e Node.js que facilita o manuseio de dados multipart/form-data, que é usado para o upload de arquivos. Ele é eficiente e fácil de usar, tornando-o a escolha perfeita para essa tarefa.

Instalação do Multer

Para começar, precisamos instalar o Multer no nosso projeto. Isso pode ser feito usando o npm (Node Package Manager), que é a maneira padrão de instalar bibliotecas e pacotes em NodeJS. Abra o terminal na pasta do seu projeto e digite o seguinte comando:


npm install --save multer

Isso instalará o Multer e o adicionará como uma dependência no seu arquivo package.json.

Configuração do Multer

Depois de instalado, precisamos configurar o Multer. Primeiro, vamos importá-lo no nosso arquivo:


const multer = require('multer');

Depois, precisamos configurar onde os arquivos carregados serão armazenados. Isso é feito criando uma instância do multer e passando um objeto de configuração para ele. Aqui está um exemplo:


const upload = multer({ dest: 'uploads/' });

No exemplo acima, estamos dizendo ao Multer para armazenar os arquivos carregados na pasta 'uploads' do nosso projeto.

Upload de arquivos

Com o Multer configurado, estamos prontos para começar a aceitar uploads de arquivos. Para fazer isso, precisamos adicionar o middleware do Multer às rotas onde queremos aceitar uploads.

Por exemplo, se tivermos uma rota POST para '/upload', poderíamos fazer algo assim:


app.post('/upload', upload.single('file'), (req, res) => {
  res.send('Arquivo carregado com sucesso!');
});

No exemplo acima, 'file' é o nome do campo no formulário de upload de arquivos. O método 'upload.single' diz ao Multer para aceitar um único arquivo do campo 'file'. Quando um arquivo é carregado, ele é armazenado no destino que configuramos e o objeto de solicitação é modificado para incluir um objeto de arquivo contendo informações sobre o arquivo carregado.

Manuseio de erros

É importante lidar com os possíveis erros que podem ocorrer durante o upload de arquivos. O Multer adiciona um erro à solicitação se algo der errado. Podemos verificar isso e responder adequadamente:


app.post('/upload', upload.single('file'), (req, res) => {
  if (req.fileValidationError) {
    return res.status(400).send(req.fileValidationError);
  }
  res.send('Arquivo carregado com sucesso!');
});

No exemplo acima, se houver um erro de validação de arquivo, nós o enviamos de volta na resposta com um status 400. Caso contrário, enviamos uma mensagem de sucesso.

Conclusão

Essa é apenas a ponta do iceberg quando se trata de upload de arquivos em NodeJS com o Multer. Existem muitas outras opções e recursos que você pode explorar, como limitar o tamanho dos arquivos carregados, aceitar vários arquivos de uma vez e muito mais. No entanto, com o que aprendemos neste capítulo, você já tem uma base sólida para começar a aceitar uploads de arquivos em suas aplicações NodeJS.

Agora que você sabe como fazer o upload de arquivos em NodeJS usando o Multer, está pronto para adicionar essa funcionalidade importante aos seus projetos. Lembre-se de sempre testar cuidadosamente o seu código e lidar com possíveis erros para garantir que os usuários tenham uma experiência suave e sem problemas.

Agora responda o exercício sobre o conteúdo:

Qual é a função da biblioteca Multer em aplicações NodeJS?

Você acertou! Parabéns, agora siga para a próxima página

Você errou! Tente novamente.

Imagem do artigo Introdução ao Socket.IO 122

Próxima página do Ebook Gratuito:

Introdução ao Socket.IO

Tempo estimado de leitura: 3 minutos

Baixe o app para ganhar Certificação grátis e ouvir os cursos em background, mesmo com a tela desligada.

+ de 9 milhões
de alunos

Certificado grátis e
válido em todo o Brasil

60 mil exercícios
gratuitos

4,8/5 classificação
nas lojas de apps

Cursos gratuitos em
vídeo, ebooks e audiobooks