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

Página 57

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.

Now answer the exercise about the content:

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

You are right! Congratulations, now go to the next page

You missed! Try again.

Next page of the Free Ebook:

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

Earn your Certificate for this Course for Free! by downloading the Cursa app and reading the ebook there. Available on Google Play or App Store!

Get it on Google Play Get it on App Store

+ 6.5 million
students

Free and Valid
Certificate with QR Code

48 thousand free
exercises

4.8/5 rating in
app stores

Free courses in
video, audio and text