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