Imagem do artigo Trabalhando com rotas no ExpressJS: Validando dados nas rotas

7.10. Trabalhando com rotas no ExpressJS: Validando dados nas rotas

Página 56 | Ouça em áudio

ExpressJS é um framework para aplicativos de rede Node.js minimalista e flexível que fornece um conjunto robusto de recursos para construção de aplicações web e móveis. Uma das principais características do ExpressJS é a sua facilidade de configuração de rotas, o que é crucial para a criação de APIs. Ao trabalhar com rotas no ExpressJS, é importante garantir que os dados passados através dessas rotas sejam validados. A validação de dados é um passo importante para garantir a integridade dos dados e a segurança do aplicativo.

Para começar a trabalhar com rotas no ExpressJS, primeiro precisamos instalar e configurar o ExpressJS. Isso pode ser feito facilmente usando o gerenciador de pacotes npm, que é instalado junto com o Node.js. Uma vez que o ExpressJS esteja instalado, podemos criar um novo arquivo JavaScript, normalmente chamado de 'app.js', e importar o ExpressJS para este arquivo.

As rotas no ExpressJS são definidas usando métodos do objeto de aplicativo Express, onde cada método corresponde a um método HTTP. Por exemplo, app.get() é usado para definir uma rota para solicitações GET e app.post() para solicitações POST. Cada rota tem uma função de callback que é chamada quando a rota é correspondida. Esta função de callback tem dois argumentos: um objeto de solicitação e um objeto de resposta.

Para ilustrar a validação de dados nas rotas, vamos considerar um exemplo de uma API que recebe uma solicitação POST para criar um novo usuário. Os dados do usuário são enviados no corpo da solicitação e podem incluir campos como nome, email e senha. Antes de processar esses dados e criar o novo usuário, devemos validar os dados para garantir que eles são do tipo e formato corretos.

app.post('/users', function(req, res) {
  // Obtenha os dados do usuário do corpo da solicitação
  var user = req.body;
  
  // Valide os dados do usuário
  if (!user.name || typeof user.name !== 'string' || user.name.length > 50) {
    // Se o nome do usuário não for válido, envie uma resposta de erro
    res.status(400).send('Invalid user name');
    return;
  }
  
  if (!user.email || !validateEmail(user.email)) {
    // Se o email do usuário não for válido, envie uma resposta de erro
    res.status(400).send('Invalid user email');
    return;
  }
  
  if (!user.password || typeof user.password !== 'string' || user.password.length < 6) {
    // Se a senha do usuário não for válida, envie uma resposta de erro
    res.status(400).send('Invalid user password');
    return;
  }
  
  // Se todos os dados forem válidos, crie o novo usuário
  var newUser = createUser(user);
  
  // Envie a resposta com o novo usuário
  res.status(201).send(newUser);
});

No exemplo acima, validamos os dados do usuário verificando se o nome é uma string e não é muito longo, se o email é um endereço de email válido e se a senha é uma string e tem pelo menos 6 caracteres. Se algum desses testes falhar, enviamos uma resposta com um código de status 400 (Bad Request) e uma mensagem de erro. Se todos os testos passarem, criamos o novo usuário e enviamos uma resposta com o novo usuário e um código de status 201 (Created).

Além de validar os dados nas rotas, também é uma boa prática lidar com erros de rota. Isso pode ser feito usando o método app.use() para adicionar um middleware de tratamento de erros. Este middleware deve ser adicionado após todas as outras rotas e middlewares, e tem quatro argumentos: um erro, um objeto de solicitação, um objeto de resposta e uma função de próximo. Se um erro for passado para a função próximo em qualquer rota ou middleware, ele será tratado pelo middleware de tratamento de erros.

Trabalhar com rotas no ExpressJS e validar dados nas rotas é um aspecto fundamental da criação de APIs em NodeJS. Ao garantir que os dados passados através das rotas sejam validados, podemos melhorar a segurança do nosso aplicativo e garantir que os dados que estamos processando sejam do tipo e formato corretos.

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

Qual é o papel da validação de dados nas rotas no ExpressJS?

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 uploads de arquivos nas rotas

Próxima página do Ebook Gratuito:

57Trabalhando com rotas no ExpressJS: Trabalhando com uploads de arquivos 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