You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: src/content/3/pt/part3b.md
+25-21Lines changed: 25 additions & 21 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -44,7 +44,7 @@ host: example.com
44
44
port: 80
45
45
```
46
46
47
-
Quando você visita um site (ou seja, <http://catwebsites.com>), o navegador emite uma requisição para o servidor em que o site (catwebsites.com) está hospedado. A resposta enviada pelo servidor é um arquivo HTML que pode conter uma ou mais referências a recursos/ativos externos hospedados no mesmo servidor que <i>catwebsites.com</i> está hospedado ou em um site diferente. Quando o navegador vê referência(s) a uma URL no HTML de origem, ele emite uma requisição. Se a requisição for feita usando a URL da qual o HTML de origem foi obtido, o navegador processa a resposta sem problemas. No entanto, se o recurso for obtido usando uma URL que não compartilha a mesma origem (esquema, host, porta) que o HTML de origem, o navegador deverá verificar o cabeçalho de resposta _Access-Control-Allow-origin_ (CORS). Se ele contiver _*_ ou a URL do HTML de origem, o navegador processará a resposta, caso contrário, o navegador se recusará a processá-la e lançará um erro.
47
+
Quando você visita um site (ou seja, <http://catwebsites.com>), o navegador emite uma requisição para o servidor em que o site (catwebsites.com) está hospedado. A resposta enviada pelo servidor é um arquivo HTML que pode conter uma ou mais referências a recursos/ativos externos hospedados no mesmo servidor que <i>catwebsites.com</i> está hospedado ou em um site diferente. Quando o navegador vê referência(s) a uma URL no HTML de origem, ele emite uma requisição. Se a requisição for feita usando a URL na qual o HTML de origem foi obtido, o navegador processa a resposta sem problemas. No entanto, se o recurso for obtido usando uma URL que não compartilha a mesma origem (esquema, host, porta) que o HTML de origem, o navegador deverá verificar o cabeçalho de resposta _Access-Control-Allow-origin_ (CORS). Se ele contiver _*_ ou a URL do HTML de origem, o navegador processará a resposta, caso contrário, o navegador se recusará a processá-la e lançará um erro.
48
48
49
49
A <strong>Política de Mesma Origem</strong> é um mecanismo de segurança implementado pelos navegadores para impedir sequestro de sessão (session hijacking), entre outras vulnerabilidades de segurança.
50
50
@@ -85,13 +85,13 @@ A aplicação React sendo executada no navegador agora obtém os dados do servid
85
85
86
86
### A Aplicação na Internet
87
87
88
-
Agora que toda a pilha (stack) está pronta, vamos mover nossa aplicação para a internet.
88
+
Agora que toda <i>stack</i> está pronta, vamos mover nossa aplicação para a internet.
89
89
90
90
Há um número cada vez maior de serviços que podem ser usados para hospedar uma aplicação na internet. Serviços voltados a desenvolvedores (developer-friendly services), como o PaaS (Platform as a Service [Plataforma como Serviço]), cuidam da instalação do ambiente de execução (Node.js, por exemplo) e também podem fornecer vários serviços, como bancos de dados.
91
91
92
92
Durante uma década, [Heroku](http://heroku.com) dominou a cena PaaS. Infelizmente, o plano gratuito do Heroku acabou em 27 de novembro de 2022. Muitos desenvolvedores ficaram tristes com isso, especialmente estudantes. O Heroku ainda é uma opção viável se você estiver disposto a gastar algum dinheiro. Eles também têm [um programa para estudantes](https://www.heroku.com/students) que fornece alguns créditos gratuitos.
93
93
94
-
Agora estamos apresentando dois serviços: [Fly.io](https://fly.io/) e [Render](https://render.com/), onde ambos têm um plano gratuito (limitado). O Fly.io é nosso serviço de hospedagem "oficial", pois pode ser usado com certeza também nas Partes 11 e 13 do curso. O Render será bom pelo menos para as outras partes deste curso.
94
+
Agora estamos apresentando dois serviços: [Fly.io](https://fly.io/) e [Render](https://render.com/), ambos possuem um plano gratuito (limitado). O Fly.io é nosso serviço de hospedagem "oficial", pois pode ser usado com certeza também nas Partes 11 e 13 do curso. O Render será bom pelo menos para as outras partes deste curso.
95
95
96
96
Observe que, apesar de usar apenas o plano gratuito, o Fly.io <i>pode</i> exigir que você insira suas informações de cartão de crédito. No momento, o Render pode ser usado sem um cartão de crédito.
97
97
@@ -113,7 +113,7 @@ Tanto para o Fly.io quanto para o Render, precisamos mudar, no final do arquivo
113
113
```js
114
114
constPORT=process.env.PORT||3001// highlight-line
115
115
app.listen(PORT, () => {
116
-
console.log(`Server running on port (Servidor em execução na porta) ${PORT}`)
116
+
console.log(`Server running on port ${PORT}`)
117
117
})
118
118
```
119
119
@@ -184,15 +184,15 @@ fly deploy
184
184
185
185
Um comando particularmente importante é _fly logs_. Este comando pode ser usado para visualizar os logs do servidor. É melhor manter os logs sempre visíveis!
186
186
187
-
**Atenção:** Em alguns casos (a causa é até agora desconhecida) executar comandos Fly.io, especialmente no Windows WSL, causou problemas. Se o seguinte comando simplesmente travar...
187
+
**Atenção:** Em alguns casos (a causa é até agora desconhecida) executar comandos Fly.io, especialmente no Windows WSL, causou problemas. Se o seguinte comando simplesmente travar:
188
188
189
189
```bash
190
190
flyctl ping -o personal
191
191
```
192
192
193
-
... seu computador não consegue, por algum motivo, se conectar ao Fly.io. Se isso acontecer com você, [aqui](https://github.com/fullstack-hy2020/misc/blob/master/fly_io_problem.md) encontra-se uma possível maneira de resolver o problema.
193
+
seu computador não consegue, por algum motivo, se conectar ao Fly.io. Se isso acontecer com você, [aqui](https://github.com/fullstack-hy2020/misc/blob/master/fly_io_problem.md) encontra-se uma possível maneira de resolver o problema.
194
194
195
-
Se a saída do comando abaixo se parecer com isto...
195
+
Se a saída do comando abaixo se parecer com isto:
196
196
197
197
```bash
198
198
$ flyctl ping -o personal
@@ -202,54 +202,54 @@ $ flyctl ping -o personal
202
202
...
203
203
```
204
204
205
-
... então não há problemas de conexão!
205
+
então não há problemas de conexão!
206
206
207
207
#### Render
208
208
209
209
Este serviço pressupõe que o [login](https://dashboard.render.com/) tenha sido feito com uma conta do GitHub.
210
210
211
211
Depois de fazer login, vamos criar um novo "Web Service":
212
212
213
-

213
+

214
214
215
215
O repositório da aplicação é então conectado ao Render:
216
216
217
-

217
+

218
218
219
219
A conexão parece exigir que o repositório da aplicação seja público.
220
220
221
221
A seguir, definiremos as configurações básicas. Se a aplicação <i>não</i> estiver na raiz do repositório, o <i>diretório raiz</i> precisa receber um valor apropriado:
222
222
223
-

223
+

224
224
225
225
Depois disso, a aplicação é iniciada no Render. O painel informa o estado da aplicação e a URL onde ela está sendo executada:
226
226
227
-

227
+

228
228
229
-
De acordo com a [documentação](https://render.com/docs/deploys), cada confirmação no GitHub deve redesenhar a aplicação. Por alguma razão, isso nem sempre funciona.
229
+
De acordo com a [documentação](https://render.com/docs/deploys), cada confirmação no GitHub deve fazer o redeploy (re-implantar) a aplicação. Por alguma razão, isso nem sempre funciona.
230
230
231
-
Felizmente, também é possível redesenhar manualmente a aplicação:
231
+
Felizmente, também é possível fazer o redeploy da aplicação manualmente:
232
232
233
-

233
+

234
234
235
235
Também é possível ver os logs da aplicação no painel:
236
236
237
-

237
+

238
238
239
239
Observamos nos logs que a aplicação foi iniciada na porta 10000. O código da aplicação obtém a porta correta por meio da variável de ambiente PORT, portanto, é essencial que o arquivo <i>index.js</i> tenha sido atualizado da seguinte maneira:
240
240
241
241
```js
242
242
constPORT=process.env.PORT||3001// highlight-line
243
243
app.listen(PORT, () => {
244
-
console.log(`Server running on port (Servidor em execução na porta) ${PORT}`)
244
+
console.log(`Server running on port ${PORT}`)
245
245
})
246
246
```
247
247
248
248
### Build de produção do front-end
249
249
250
250
Até agora, rodamos o código do React em <i>modo de desenvolvimento</i>. No modo de desenvolvimento, a aplicação é configurada para exibir mensagens de erro claras, renderizar imediatamente as mudanças de código para o navegador, e assim por diante.
251
251
252
-
Quando a aplicação é implantada (deployed), é necessário criar um [build de produção](https://reactjs.org/docs/optimizing-performance.html#use-the-production-build) (grosso modo, "versão de produção" ou "compilação de produção" ou "estrutura de produção") ou uma versão da aplicação otimizada para produção.
252
+
Quando a aplicação é implantada (deployed), é necessário criar um [build de produção](https://reactjs.org/docs/optimizing-performance.html#use-the-production-build), ou seja, uma versão da aplicação otimizada para produção.
253
253
254
254
Um build de produção de aplicações gerado com <i>create-react-app</i> pode ser criado com o comando [npm run build](https://github.com/facebookincubator/create-react-app#npm-run-build-or-yarn-build).
255
255
@@ -413,7 +413,7 @@ O script _npm run build:ui_ constrói o front-end e copia a versão de produçã
413
413
414
414
Observe que os caminhos de diretório no script <i>build:ui</i> dependem da localização dos repositórios no sistema de arquivos.
415
415
416
-
>**N.B.:** No Windows, scripts npm são executados em cmd.exe como o shell padrão que não oferece suporte a comandos bash. Para que os comandos bash acima funcionem, é possível alterar o shell padrão para Bash (na instalação padrão do Git para Windows) da seguinte forma:
416
+
>**Obs.:** No Windows, scripts npm são executados em cmd.exe como o shell padrão que não oferece suporte a comandos bash. Para que os comandos bash acima funcionem, é possível alterar o shell padrão para Bash (na instalação padrão do Git para Windows) da seguinte forma:
417
417
418
418
```md
419
419
npm config set script-shell "C:\\Program Files\\git\\bin\\bash.exe"
@@ -423,7 +423,7 @@ Outra opção é usar o [shx](https://www.npmjs.com/package/shx).
423
423
424
424
### Proxy
425
425
426
-
As alterações no front-end fizeram com que não funcionasse mais no modo de desenvolvimento (quando iniciado com o comando _npm start_), pois a conexão com o back-end não funciona.
426
+
As alterações no front-end fizeram com que ele não funcionasse mais no modo de desenvolvimento (quando iniciado com o comando _npm start_), pois a conexão com o back-end não funciona.
427
427
428
428

429
429
@@ -485,11 +485,15 @@ Teste o recém-implantado back-end com um navegador, com o Postman ou com o clie
485
485
486
486
Crie um README.md na raiz do seu repositório e adicione um link de acesso à sua aplicação online.
487
487
488
+
**OBSERVAÇÃO** como dito, o deploy do BACKEND deve ser feito em um serviço de nuvem. Se você estiver usando o Fly.io, o comando deve ser executado no diretório raiz do backend (que é o mesmo diretório onde está o arquivo do backend chamado package.json). No caso de estar usando o Render, o backend deve estar na raiz do seu repositório.
489
+
490
+
Você NÃO deve fazer o deploy do frontend diretamente nesta parte. O deploy está sendo realizado apenas com o repositório do backend ao longo de toda esta parte do curso.
491
+
488
492
#### 3.11: Phonebook backend — 11º passo
489
493
490
494
Gere um build de produção do seu front-end e adicione-o à aplicação na internet utilizando o método introduzido nesta parte.
491
495
492
-
**N.B.:** Se você usar o Render, certifique-se de que o diretório <i>build</i> não esteja no <i>gitignored</i>.
496
+
**Obs.:** Se você usar o Render, certifique-se de que o diretório <i>build</i> não esteja no <i>gitignored</i>.
493
497
494
498
Certifique-se também de que o front-end ainda funcione localmente (em modo de desenvolvimento quando iniciado com o comando _npm start_).
0 commit comments