-
Crie a pasta em que ficará seu servidor
Dentro da sua pasta crie os arquivos referentes ao servidor, app, rotas, controller e model, como no exemplo:
\--📂 NOME-DO-SEU-SERVIDOR | server.js | \--📂src | app.js | 📂---controller | NOMEController.js | 📂---model | NOME.json | 📂---routes NOMERoute.js
-
Pelo terminal entre em sua pasta referente ao Servidor, como no exemplo:
~ $ cd Desktop/ ~/Desktop $ cd NOME-DO-MEU-SERVIDOR ~/Desktop/NOME-DO-MEU-SERVIDOR $ ls server.js src/
-
Inicie o git. (Se você preferir criar um repositório do git e depois clonar, você pode pular essa etapa)
~/Desktop/NOME-DO-MEU-SERVIDOR $ git init Initialized empty Git repository in C:/Users/Mayhhara/Desktop/NOME-DO-MEU-SERVIDOR/.git/ ~/Desktop/NOME-DO-MEU-SERVIDOR (master) $
-
Inicie o seu projeto com o comando npm init
@DESKTOP MINGW64 ~/Desktop/NOME-DO-MEU-SERVIDOR (master) $ npm init This utility will walk you through creating a package.json file. It only covers the most common items, and tries to guess sensible defaults. See `npm help init` for definitive documentation on these fields and exactly what they do. Use `npm install <pkg>` afterwards to install a package and save it as a dependency in the package.json file. Press ^C at any time to quit. package name: (NOME-DO-MEU-SERVIDOR) Escreva aqui o nome version: (1.0.0) description: escreva uma curta descrição entry point: (server.js) test command: git repository: se não vir automaticamente, coloque o link do repositório keywords: author: mayhhara morais license: (ISC) About to write to C:\Users\Mayhhara\Desktop\NOME-DO-MEU-SERVIDOR\package.json: { "name": "servidor", "version": "1.0.0", "description": "servidor para aula de backend da reprograma", "main": "server.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "repository": { "type": "git", "url": "meugit" }, "author": "mayhhara morais", "license": "ISC" } Is this OK? (yes) yes
-
Repare que será criado um arquivo novo dentro do seu projeto, o package.json:
~/Desktop/NOME-DO-MEU-SERVIDOR (master) $ ls package.json server.js src/
O arquivo package.json é o ponto de partida de qualquer projeto NodeJS. Ele é responsável por descrever o seu projeto, informar a versão do node e do npm, url do repositório, versão do projeto, dependências de produção e de desenvolvimento dentre outras coisas.
E dentro do seu projeto o package.json vai estar mais ou menos assim:
{ "name": "servidor", "version": "1.0.0", "description": "servidor para aula de backend da reprograma", "main": "server.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "repository": { "type": "git", "url": "https://github.com/reprograma/On16-TodasEmTech-S8-API-Get-Post" }, "author": "mayhhara morais", "license": "ISC" }
-
Instale alguns pacotes de dependências importantes para o projeto.
O primeiro é o nodemon, que nos ajuda restartando nosso servidor automaticamente toda vez que fizermos uma modificação no nosso projeto, para instala-la coloque no seu terminal o comando npm install nodemon a resposta será a seguinte:
~/Desktop/NOME-DO-MEU-SERVIDOR (master) $ npm install nodemon
Em seguida instale o express, ele é nos ajuda a criar e gerenciar as chamadas HTTP e montar o servidor com mais facilidade. Para instala-lo você deve colocar no seu terminal o comando npm install express a resposta será a seguinte:
~/Desktop/NOME-DO-MEU-SERVIDOR (master) $ npm install express
Perceba que agora no seu package.json tem algumas novas linhas que indicam as dependências usadas e necessárias para o seu projeto:
{ "name": "servidor", "version": "1.0.0", "description": "servidor para aula de backend da reprograma", "main": "server.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "repository": { "type": "git", "url": "https://github.com/reprograma/On16-TodasEmTech-S8-API-Get-Post" }, "author": "mayhhara morais", "license": "ISC", "dependencies": { "express": "^4.17.1", "nodemon": "^2.0.4" } }
Perceba também que um novo arquivo foi criado o package-lock.json e uma nova pasta a node_modules:
~/Desktop/NOME-DO-MEU-SERVIDOR (master) $ ls node_modules/ package.json package-lock.json server.js src/
Sempre que você instalar um pacote do npm, ele será referenciado no package-lock.json e será instalado na pasta node_modules.
Na node_modules estarão baixadas as dependências que o seus pacotes precisarão pra funcionar e o package-lock especifica a versão e suas dependências próprias, assim, a instalação criada será sempre a mesma, toda vez.
-
Dentro do projeto, crie o arquivo .gitignore e adicione a node_modules. Dentro do .gitignore ficará assim:
node_modules/
Nós ignoramos a node_modules pois nela estão todos os downloads de todas as dependências do projeto, se apagarmos ela só precisamos dar o comando npm install que as dependências serão baixadas de novo e pasta node_modules reaparecerá. O npm sabe quais dependências baixar pois elas estão referenciadas no package.json e no package-lock.json.
-
Agora você terá essa organização de pastas:
\--📂 NOME-DO-SEU-SERVIDOR \--📂 node_modules | .gitignore | package-lock.json | package.json | server.js | \--📂src | | 📂---controller | NOMEController.js | 📂---model | NOME.json | 📂---routes NOMERoute.js
-
Procure dentro do seu package.json a chave "scripts", nela são colocados os comando e suas ações. Verifique se existe o comando "start", caso não, adicione o start do server pelo nodemon, dessa forma:
{ "name": "servidor", "version": "1.0.0", "description": "servidor para aula de backend da reprograma", "main": "server.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", **"start": "nodemon server.js"** }, "repository": { "type": "git", "url": "https://github.com/reprograma/On16-TodasEmTech-S8-API-Get-Post" }, "author": "mayhhara morais", "license": "ISC", "dependencies": { "express": "^4.17.1", "nodemon": "^2.0.4" } }
-
Agora pode começar a codar seu servidor!
-
Para iniciar o seu servidor, é só rodar o comando npm start 🚀
APRESENTAÇÃO DISPONÍVEL AQUI
-
https://medium.com/xp-inc/criando-uma-api-node-em-10-passos-com-express-js-52b2d612a8a9
-
https://dev.to/santypk4/bulletproof-node-js-project-architecture-4epf
-
https://medium.com/@diomalta/como-organizar-e-estruturar-projetos-com-node-js-4845be004899
-
[https://github.com/Edilainesds/On14-TodasEmTech-s9-API-DELETE-PUT-PATCH/blob/edilainesilva/material/crud.pdf] (https://github.com/Edilainesds/On14-TodasEmTech-s9-API-DELETE-PUT-PATCH/blob/edilainesilva/material/crud.pdf)
-
https://www.digitalocean.com/community/tutorials/use-expressjs-to-get-url-and-post-parameters
-
https://docs.microsoft.com/pt-br/learn/modules/build-web-api-nodejs-express/4-route-management