Imagem do artigo Trabalhando com rotas no ExpressJS: Trabalhando com uploads de arquivos nas rotas

7.11. Trabalhando com rotas no ExpressJS: Trabalhando com uploads de arquivos nas rotas

Página 57 | Ouça em áudio

ExpressJS é um framework minimalista e flexível para Node.js que fornece um conjunto robusto de recursos para construir aplicativos web e móveis. Um dos recursos mais poderosos que o ExpressJS oferece é a capacidade de definir e trabalhar com rotas. Neste capítulo, vamos nos concentrar em como trabalhar com uploads de arquivos nas rotas usando ExpressJS.

Trabalhar com uploads de arquivos é uma tarefa comum em aplicações web. Seja para permitir que os usuários façam upload de imagens de perfil, documentos ou qualquer outro tipo de arquivo, você precisará lidar com o upload de arquivos em algum momento. Felizmente, o ExpressJS torna isso relativamente simples.

Configurando o Middleware

Antes de podermos começar a aceitar uploads de arquivos, precisamos configurar um middleware para processá-los. O middleware é uma função que tem acesso ao objeto de solicitação (req), ao objeto de resposta (res) e à próxima função de middleware no ciclo de solicitação/resposta do aplicativo.

Para lidar com uploads de arquivos, vamos usar um pacote chamado 'multer'. O Multer é um middleware node.js para lidar com o 'multipart/form-data', que é usado para o upload de arquivos. Ele é muito fácil de usar e bem documentado. Para começar, você precisa instalá-lo em seu projeto:

npm install --save multer

Depois de instalado, você pode requerê-lo em seu aplicativo e configurar um local para armazenar os arquivos enviados:

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

Aqui, estamos dizendo ao Multer para armazenar os arquivos enviados na pasta 'uploads' em nosso diretório raiz.

Definindo a Rota

Com o Multer configurado, podemos agora definir uma rota para aceitar uploads de arquivos. Vamos definir uma rota POST em '/upload' que aceita um único arquivo:

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

Na rota acima, 'upload.single('file')' é um middleware que processa o upload. 'file' é o nome do campo no formulário que contém o arquivo. A função de callback é chamada depois que o arquivo foi carregado com sucesso.

Trabalhando com os Arquivos Enviados

Depois que um arquivo é enviado, você pode acessar os dados do arquivo através do objeto 'req.file'. Este objeto contém informações úteis como o nome original do arquivo, o nome do arquivo no servidor, o tipo de arquivo e o tamanho do arquivo.

Você pode usar essas informações para validar o arquivo, renomeá-lo, movê-lo ou fazer qualquer outra coisa que você precisar. Aqui está um exemplo de como você pode renomear o arquivo usando o módulo 'fs' do Node.js:

const fs = require('fs')

app.post('/upload', upload.single('file'), (req, res) => {
  fs.rename(req.file.path, 'uploads/' + req.file.originalname, err => {
    if (err) return res.send('Erro ao renomear o arquivo.')

    res.send('Arquivo enviado e renomeado com sucesso.')
  })
})

Neste exemplo, estamos renomeando o arquivo para o seu nome original. Se houver um erro ao renomear o arquivo, enviamos uma mensagem de erro. Caso contrário, enviamos uma mensagem de sucesso.

Conclusão

Trabalhar com uploads de arquivos no ExpressJS é simples e direto. Com o middleware Multer, você pode facilmente aceitar uploads de arquivos, acessar informações sobre os arquivos enviados e manipular esses arquivos conforme necessário. Este é apenas um exemplo básico do que você pode fazer com uploads de arquivos no ExpressJS. A capacidade de aceitar e processar uploads de arquivos é uma habilidade essencial para qualquer desenvolvedor web e é apenas um dos muitos recursos poderosos que o ExpressJS oferece.

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

Qual é a função do middleware 'multer' no ExpressJS e como ele é usado para lidar com uploads de arquivos?

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

Você errou! Tente novamente.

Imagem do artigo Trabalhando com rotas no ExpressJS: Trabalhando com autenticação JWT nas rotas

Próxima página do Ebook Gratuito:

58Trabalhando com rotas no ExpressJS: Trabalhando com autenticação JWT nas rotas

3 minutos

Ganhe seu Certificado deste Curso Gratuitamente! ao baixar o aplicativo Cursa e ler o ebook por lá. Disponível na Google Play ou App Store!

Disponível no Google Play Disponível no App Store

+ de 6,5 milhões
de alunos

Certificado Gratuito e
Válido em todo o Brasil

48 mil exercícios
gratuitos

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

Cursos gratuitos em
vídeo, áudio e texto