ExpressJS - Melhores Práticas

Diferente do Django e Rails que têm uma maneira definida de fazer as coisas, estrutura de arquivos, etc., o Express não segue uma maneira definida. Isso significa que você pode estruturar o aplicativo da maneira que desejar. Mas à medida que seu aplicativo cresce em tamanho, é muito difícil mantê-lo se ele não tiver uma estrutura bem definida. Neste capítulo, veremos as estruturas de diretório geralmente usadas e a separação de interesses para construir nossos aplicativos.

Primeiro, discutiremos as melhores práticas para a criação de aplicativos de nó e Express.

  • Sempre comece um projeto de nó usando npm init.

  • Sempre instale dependências com um --save ou --save-dev. Isso garantirá que, se você mudar para uma plataforma diferente, você possa apenas executar npm install para instalar todas as dependências.

  • Fique com nomes de arquivo em minúsculas e variáveis ​​camelCase. Se você olhar para qualquer módulo npm, ele é nomeado em minúsculas e separado por travessões. Sempre que você precisar desses módulos, use camelCase.

  • Não envie node_modules para seus repositórios. Em vez disso, o npm instala tudo nas máquinas de desenvolvimento.

  • Use um config arquivo para armazenar variáveis

  • Agrupe e isole as rotas em seus próprios arquivos. Por exemplo, pegue as operações CRUD no exemplo de filmes que vimos na página da API REST.

Estrutura de Diretório

Vamos agora discutir a estrutura de diretórios do Express.

Sites

O Express não possui uma estrutura definida pela comunidade para a criação de aplicativos. A seguir está uma estrutura de projeto amplamente utilizada para um site.

test-project/
   node_modules/
   config/
      db.js                //Database connection and configuration
      credentials.js       //Passwords/API keys for external services used by your app
      config.js            //Other environment variables
   models/                 //For mongoose schemas
      users.js
      things.js
   routes/                 //All routes for different entities in different files 
      users.js
      things.js
   views/
      index.pug
      404.pug
        ...
   public/                 //All static content being served
      images/
      css/
      javascript/
   app.js
   routes.js               //Require all routes in this and then require this file in 
   app.js 
   package.json

Existem outras abordagens para construir sites com o Express também. Você pode construir um site usando o padrão de design MVC. Para obter mais informações, você pode visitar os links a seguir.

https://code.tutsplus.com/tutorials/build-a-complete-mvc-website-with-expressjs--net-34168

e,

https://www.terlici.com/2014/08/25/best-practices-express-structure.html.

APIs RESTful

APIs são mais simples de projetar; eles não precisam de um diretório público ou de visualizações. Use a seguinte estrutura para construir APIs -

test-project/
   node_modules/
   config/
      db.js                //Database connection and configuration
      credentials.js       //Passwords/API keys for external services used by your app
   models/                 //For mongoose schemas
      users.js
      things.js
   routes/                 //All routes for different entities in different files 
      users.js
      things.js
   app.js
   routes.js               //Require all routes in this and then require this file in 
   app.js 
   package.json

Você também pode usar um gerador de yeoman para obter uma estrutura semelhante.