Capa do Ebook gratuito Como criar APIs em NodeJS do básico ao avançado

Como criar APIs em NodeJS do básico ao avançado

Novo curso

149 páginas

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

Capítulo 57

Tempo estimado de leitura: 3 minutos

Audio Icon

Ouça em áudio

0:00 / 0:00

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:

Continue em nosso aplicativo

Você poderá ouvir o audiobook com a tela desligada, ganhar gratuitamente o certificado deste curso e ainda ter acesso a outros 5.000 cursos online gratuitos.

ou continue lendo abaixo...
Download App

Baixar o aplicativo

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.

Multer é um middleware especializado em lidar com 'multipart/form-data', que é usado para upload de arquivos em aplicativos ExpressJS. Ele simplifica o processo de receber arquivos em um servidor, permitindo especificar um local no servidor para armazenar os arquivos enviados. Multer transforma os dados do upload em objetos fáceis de manipular, que podem ser acessados no manipulador de rotas.

Próximo capitúlo

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

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