Testando códigos Node.JS exemplo que estão dentro de livros que estou estudando.
Tutorial Node.js (W3 Schools) = https://www.w3schools.com/nodejs/default.asp
O diretório ROOT do projeto é o ponto de entrada, ou seja, a primeira impressão. No exemplo a seguir temos uma estrutura comum em aplicações usando o framework express.js Essa estrutura é legivel e organizada, mas tende a ficar muito grande e misturar diretórios de códigos com diretórios de teste, build, etc, conforme o crescimento da aplicação.
Outros diretórios localizados no ROOT são scripts de suporte ou build, exemplos, documentação e arquivos estáticos. Um padrão comum em diversas linguagens é colocar o código da aplicação em um diretório source normalmente chamado /src/.
- /src/mobile/controllers/
- /src/mobile/middlewares/
- /src/mobile/models/
- /src/mobile/routes/
- /src/mobile/server/
- /src/mobile/index.js
- /src/web/controllers/
- /src/web/middlewares/
- /src/web/models/
- /src/web/routes/
- /src/web/server/
- /src/web/index.js
- /src/client/controllers/
- /src/client/models/
- /src/client/views/
- /src/client/index.js
- /src/server/controllers/
- /src/server/models/
- /src/server/views/
- /src/server/index.js
Dessa maneira o código da aplicação é isolado em um diretório deixando o ROOT mais limpo e acabando com a mistura de diretórios de código, com diretórios de testes, e diretórios de arquivos de configuração.
Mantivemos fora o diretório /tests/, o motivo disso é porque testes são executados ou por linha de comando ou por outras ferramentas. Inclusive os tests runners como mocha ou karma esperam que o diretório /tests/ seja o diretório principal.
- /config/
- /docs/
- /tests/
O diretório /public/ é responsável por guardar tudo aquilo que vai ser entregue para o usuário, usar ele no ROOT facilita a criação de rotas de acesso e também a movimentação dos assets quando necessário.
- /public/assets/
- /public/images/
- /public/css/
- /public/js/
O diretório /assets/ é buscado por diversas ferramentas e módulos de sistemas, e por isso devemos guardar os arquivos de imagens jpg, gif, png, ico, texturas, arquivos javascripts, arquivos sass e arquivos styles.css, que serão utilizados pela aplicação.
- /assets/images/jpg/
- /assets/images/gif/
- /assets/images/png/
- /assets/images/ico/
- /assets/images/textures/
- /assets/css/
- /assets/js/
- /assets/sass/
- /assets/javascrips/
- /assets/styles/
O diretório /scripts/ e o diretório /env/ são relacionados a execução da aplicação e serão chamados por alguma linha de comando ou ferramenta externa, colocar eles no diretório raiz ROOT é acessível facilita a usabilidade.
- /scripts/deploy.sh
- /env/prod.env
- /env/dev.env
Separação da execução da aplicação. Os arquivos app.js e server.js devem ser mantidos no diretório raiz ROOT, dessa maneira deixamos o server.js com a responsabilidade de chamar o app.js e iniciarmos a aplicação. Assim isolamos a aplicação da execução e deixamos que ela seja executada por quem chamar, nesse caso o server.js, mas poderia ser um módulo que vai fazer uma requisição HTTP para executar os testes e acessar rotas.
- app.js
- .gitignore
- package.json
- server.js
https://expressjs.com/pt-br/guide/routing.html
https://expressjs.com/pt-br/4x/api.html
https://developer.mozilla.org/pt-BR/docs/Learn/Server-side/Express_Nodejs/Introduction
https://www.digitalocean.com/community/tutorials/use-expressjs-to-get-url-and-post-parameters
https://www.tabnine.com/code/javascript/functions/express/Express/post
https://codeforgeek.com/handle-get-post-request-express-4/
https://www.codegrepper.com/code-examples/javascript/app.post+in+express