# Node.js e Ferramentas Essenciais

{% hint style="info" %}
Temos um curso de NodeJS aqui no gitbook do CodeLab, você pode verificar o material antes de continuar aqui!
{% endhint %}

## **Introdução ao Node.js**

Node.js é um **ambiente de execução de JavaScript do lado do servidor**. Baseia-se em pacotes e módulos, que facilitam o desenvolvimento de aplicações backend robustas.

### Instalaçao do Node.js

Para começar a utilizar o Node.js, siga os passos abaixo:

1. **Baixar o Node.js:**
   * Acesse a página oficial de download do Node.js: [https://nodejs.org](https://nodejs.org)
   * Escolha a versão LTS (Long Term Support) recomendada para a maioria dos usuários.
   * Faça o download e siga as instruções de instalação para o seu sistema operacional.
2. **Verificar a instalação:**
   * Abra o terminal ou prompt de comando.
   *   Execute os seguintes comandos para verificar se o Node.js e o NPM (Node Package Manager) foram instalados corretamente:

       ```bash
       node -v
       npm -v
       ```
   * Ambos os comandos devem retornar a versão instalada.

#### **Iniciando um Projeto com Node.js**

1.  **Criar uma pasta para o projeto:**

    ```bash
    mkdir meu-projeto-backend
    cd meu-projeto-backend
    ```
2.  **Inicializar o NPM:**

    ```bash
    npm init -y
    ```

    * Este comando cria um arquivo `package.json` com as configurações padrão.
3.  **Instalar os pacotes essenciais:**

    ```bash
    npm install express
    npm install --save-dev nodemon
    ```

    * **Express:** Facilita a criação de servidores web e APIs RESTful.
    * **Nodemon:** Reinicializa automaticamente o servidor quando detecta alterações no código.
4. **Configurar o Nodemon:**
   *   Abra o arquivo `package.json` e adicione o seguinte script:

       ```json
       "scripts": {
         "start": "node index.js",
         "dev": "nodemon index.js"
       }
       ```
   *   Agora, você pode iniciar o servidor em modo de desenvolvimento usando:

       ```bash
       npm run dev
       ```
5. **Criar o arquivo principal do servidor:**
   *   Crie um arquivo chamado `index.js` na raiz do projeto com o seguinte conteúdo:

       ```javascript
       const express = require('express');
       const app = express();
       const port = 3000;

       app.get('/', (req, res) => {
         res.send('Olá, mundo!');
       });

       app.listen(port, () => {
         console.log(`Servidor rodando em http://localhost:${port}`);
       });
       ```
6.  **Iniciar o servidor:**

    ```bash
    npm run dev
    ```

    * Abra o navegador e acesse http://localhost:3000 para ver a mensagem "Olá, mundo!".

### **Módulos no Node.js:**

* **Módulos Nativos:** Já vêm com a instalação do Node.js.
* **Módulos Externos:** Podem ser instalados via **NPM** (_Node Package Manager_).

### **Principais Pacotes que utilizaremos por enquanto:**

* **Express:** Facilita a criação de servidores web e APIs RESTful.
* **Nodemon:** Reinicializa automaticamente o servidor quando detecta alterações no código.

_Você pode baixar o nodeJs na sua maquina pela_ [_pagina do node_](https://nodejs.org/pt)
