Logo Passei Direto
Buscar

Boas práticas do NodeJS

User badge image

Enviado por Rubens Lopes em

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

Boas práticas do NodeJS
By Rubens Lopes
Objetivos
Padronizar o desenvolvimento
Alinhar novas funcionalidades
Evitar retrabalho
Facilitar atualização de packages
Vamos focar em:
Construção de API
Uso de novidades do NodeJs > 7
Padronização da nomenclatura das rotas (RESTful)
Dicas gerais (um esquenta)
Novo nucheckHell (case sensitive)
Um problema que não acontece no Local
NucheckHell = Divergência de versões de pacotes
Novo nucheckHell (case sensitive)
Um problema que não acontece no Local
NumCheckHell = Divergência de versões de pacotes
 Use a funcionalidade no nome
Usar o var, let ou const
Usar uma variável sem ele, faz gerar a variável no scope GLOBAL do node.
Padrão de “classes”
Await
Nova maneira de trabalhar com promises no PD.
Await - exemplo + catch
Await - Map + await
O map não trabalha bem com o await.
Await - Cuidados para não:
Esquecer o Try Catch no controller.
Esquecer o Async na função.
Se a função não for um controller, um service direto*, repository, usar o async no nome:
var fixUrlAsync = async function(url) {
E como ficou os Repositórios?
Antes de tudo, atualizar os arquivos packages, MySqlDbClient.js e Transaction.js
E como ficou o Repositório?
E como ficou o Repositório? (parâmetros)
Transactions
Padrão de API RESTful
Por que usar RESTful?
É um padrão usado no mundo todo
Fácil de entender
Facilita a comunicação
Ajuda na manutenção e simplificação
Agiliza a adaptação dos novos plenos/seniors
O que é RESTful
É um padrão de interface de comunicação de api com o mundo externo.
Representation State Transfer, Wikipédia
Padrão de URL
Parâmetros
Respostas
RESTful - URL
Use substantivos.
User as informações já passada pela url
/users/getAllUsers -> /users
/questions
Portanto, use plural quando o endpoint vai tratar de listas.
Para especificar um usuário
/users?userId=123 -> /users/123
/questions/2156
RESTful - URL
Use as coleções que você já tem até agora
/questions/12315/getAllAnswers
/questions/12315/answers
/questions/12315/answers/6546
/questions/12315/answers/count
/questions/12315/answers/6546/text
/questions/12315/title
RESTful - URL
Use verbos no POST quando for uma ação
/video/21321/play
/video/12315/stop
Mas NÃO use para ações comum.
/user/21321/create
/user/21233/edit
/user/123132/delete
RESTful - HTTP*
Para isso use os protocolos HTTP
Get -> Pegar o usuário
/user/123
Post -> Cria o usuário
/user/123
Put -> Atualiza o usuário
/user/123
Delete -> Deleta o usuário
/user/123
	
RESTful - URL
Para evitar problemas de case sensitive e melhorar a clareza, use o ‘-’ no lugar de camelCase.
/producerManagers
/producer-managers
RESTful - Exemplo
/getPermissionUserBySubjectsId?subjectId=123
/subjects/123/users/permissions
*****
/getImageUrlByUserId?userId=123
/user/123/image-url
RESTful - Exemplo*
/getNameByUserId?userId=123
/users/123/name
/users/me/name******
/users/admin/name******
RESTful - Novidades *******
Query
/users?registerDate=gt2018-01-01
Filter
/users?email=hotmail.com
Sort
/users?sort=-age,name
Extras
Filtrar em query
COALESCE
GROUP_CONCAT + DISTINCT COUNT
Constant params
Constant params
Constant params

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Mais conteúdos dessa disciplina

Mais conteúdos dessa disciplina