﻿1
00:00:01,300 --> 00:00:02,640
‫Instrutor: Então você

2
00:00:02,640 --> 00:00:05,930
‫já aprendeu como criar novos documentos no banco de dados.

3
00:00:05,930 --> 00:00:07,610
‫Mas, nesta palestra, vou mostrar

4
00:00:07,610 --> 00:00:10,940
‫a você uma maneira mais fácil e ainda melhor de fazer isso,

5
00:00:10,940 --> 00:00:13,933
‫à medida que implementamos nosso manipulador de criação de tour.

6
00:00:15,620 --> 00:00:17,620
‫Então, neste ponto, nossa

7
00:00:17,620 --> 00:00:19,690
‫API basicamente não faz mais nada.

8
00:00:19,690 --> 00:00:21,140
‫Não funciona mais

9
00:00:21,140 --> 00:00:23,850
‫porque basicamente excluímos todas as funcionalidades que

10
00:00:23,850 --> 00:00:25,760
‫tínhamos no último vídeo.

11
00:00:25,760 --> 00:00:28,740
‫E fizemos isso para que nas próximas

12
00:00:28,740 --> 00:00:32,230
‫duas aulas possamos reconstruí-lo usando um banco de dados real.

13
00:00:32,230 --> 00:00:36,810
‫Ok, então basicamente construindo nossa API real.

14
00:00:36,810 --> 00:00:38,500
‫E vamos começar implementando

15
00:00:38,500 --> 00:00:39,957
‫a função createTour.

16
00:00:39,957 --> 00:00:42,260
‫Mas lembre-se da função de manipulador que

17
00:00:42,260 --> 00:00:45,300
‫é chamada assim que há uma solicitação de postagem

18
00:00:45,300 --> 00:00:47,420
‫para o roteiro dos passeios.

19
00:00:47,420 --> 00:00:50,460
‫Então é isso que temos aqui em tourRoutes.

20
00:00:51,300 --> 00:00:53,320
‫Então, vamos colocar isso aqui.

21
00:00:53,320 --> 00:00:56,930
‫Então, o que acabei de dizer é o seguinte.

22
00:00:56,930 --> 00:00:59,940
‫Portanto, temos este checkBody aqui.

23
00:00:59,940 --> 00:01:01,450
‫O que, na verdade,

24
00:01:01,450 --> 00:01:03,663
‫é algo que também poderemos excluir.

25
00:01:04,920 --> 00:01:06,313
‫Então, onde fica isso, na verdade?

26
00:01:07,583 --> 00:01:09,120
‫checkBody certo,

27
00:01:09,120 --> 00:01:12,750
‫então esta é mais uma dessas funções que

28
00:01:12,750 --> 00:01:14,290
‫realmente não precisamos mais.

29
00:01:14,290 --> 00:01:17,180
‫Porque isso basicamente era para validar o corpo.

30
00:01:17,180 --> 00:01:22,060
‫Então, para ver se ele tinha o nome ou a propriedade do preço neles.

31
00:01:22,060 --> 00:01:22,900
‫Direito?

32
00:01:22,900 --> 00:01:24,690
‫Mas agora nosso modelo

33
00:01:24,690 --> 00:01:26,650
‫de mangusto vai cuidar disso.

34
00:01:26,650 --> 00:01:28,830
‫E então, novamente, isso aqui

35
00:01:28,830 --> 00:01:31,900
‫foi bom para realmente nos mostrar como funciona o

36
00:01:31,900 --> 00:01:34,143
‫middleware, mas agora podemos nos livrar dele.

37
00:01:35,490 --> 00:01:39,410
‫Ok, então vou excluí-lo daqui também.

38
00:01:39,410 --> 00:01:40,393
‫Salve novamente.

39
00:01:41,474 --> 00:01:43,400
‫E agora está de volta ao trabalho.

40
00:01:43,400 --> 00:01:45,660
‫De qualquer forma, a função que

41
00:01:45,660 --> 00:01:48,000
‫estamos criando agora é a função createTour.

42
00:01:48,000 --> 00:01:50,050
‫Onde apenas um dado será

43
00:01:50,050 --> 00:01:54,690
‫chamado assim que alguém acessar a rota do tour com uma solicitação de postagem.

44
00:01:54,690 --> 00:01:57,030
‫Ok, apenas para recapitular porque eu

45
00:01:57,030 --> 00:01:59,150
‫sei que pode ser um

46
00:01:59,150 --> 00:02:02,190
‫pouco confuso com esses arquivos e pastas diferentes

47
00:02:02,190 --> 00:02:03,980
‫e funções diferentes.

48
00:02:03,980 --> 00:02:05,430
‫Mas também é muito

49
00:02:05,430 --> 00:02:07,610
‫importante que comecemos a organizar nosso código

50
00:02:07,610 --> 00:02:08,860
‫desde o início.

51
00:02:09,940 --> 00:02:10,900
‫OK?

52
00:02:10,900 --> 00:02:14,710
‫De qualquer forma, estamos aqui na função createTour.

53
00:02:14,710 --> 00:02:17,200
‫E agora vamos criar um novo tour.

54
00:02:17,200 --> 00:02:19,270
‫E vamos fazer isso com base nos

55
00:02:19,270 --> 00:02:21,290
‫dados que vêm do corpo.

56
00:02:21,290 --> 00:02:22,640
‫Lembre-se disso?

57
00:02:22,640 --> 00:02:24,980
‫Agora lembre-se de como costumávamos criar documentos

58
00:02:24,980 --> 00:02:26,363
‫algumas aulas atrás.

59
00:02:27,470 --> 00:02:29,253
‫Então nós fizemos assim.

60
00:02:30,690 --> 00:02:32,487
‫Por exemplo, digamos newTour

61
00:02:33,327 --> 00:02:35,077
‫então igual a

62
00:02:37,910 --> 00:02:40,014
‫newTour e os dados lá.

63
00:02:40,014 --> 00:02:44,181
‫Então nós fizemos assim e então foi uma nova turnê.

64
00:02:46,087 --> 00:02:48,504
‫E então digitamos newTour. salve e

65
00:02:50,290 --> 00:02:51,920
‫isso funciona bem.

66
00:02:51,920 --> 00:02:54,780
‫Mas podemos fazer isso de uma maneira ainda mais fácil.

67
00:02:54,780 --> 00:02:58,010
‫Então, em vez de fazer isso, podemos

68
00:03:02,220 --> 00:03:05,690
‫fazer um tour. crie e cole os dados lá.

69
00:03:05,690 --> 00:03:08,070
‫Ok e isso fará exatamente a mesma coisa.

70
00:03:08,070 --> 00:03:10,900
‫A principal diferença é que, nesta

71
00:03:10,900 --> 00:03:14,170
‫versão, basicamente chamamos o método diretamente no passeio,

72
00:03:14,170 --> 00:03:17,330
‫enquanto nesta primeira versão chamamos o método

73
00:03:17,330 --> 00:03:18,970
‫no novo documento.

74
00:03:18,970 --> 00:03:21,560
‫Ok, então isso é completamente diferente.

75
00:03:21,560 --> 00:03:23,940
‫Então, novamente, fizemos o tour que criamos a

76
00:03:23,940 --> 00:03:24,920
‫partir do modelo.

77
00:03:24,920 --> 00:03:27,920
‫E então, nesse tour, usamos o método save.

78
00:03:27,920 --> 00:03:30,720
‫Porque o documento tem acesso a este método

79
00:03:30,720 --> 00:03:33,030
‫e a vários outros métodos também.

80
00:03:33,030 --> 00:03:35,040
‫Mas aqui, na segunda

81
00:03:35,040 --> 00:03:39,373
‫situação, chamamos esse método de criação diretamente no próprio modelo, certo?

82
00:03:40,560 --> 00:03:45,463
‫Agora lembre-se de como este método de salvamento aqui retornou uma promessa.

83
00:03:46,480 --> 00:03:49,670
‫E então este criar aqui também retorna uma promessa.

84
00:03:49,670 --> 00:03:52,630
‫E então, para obter acesso ao documento de arquivo

85
00:03:52,630 --> 00:03:54,690
‫conforme foi criado no banco

86
00:03:54,690 --> 00:03:58,880
‫de dados, teríamos então de ter usado. então tudo bem?

87
00:03:58,880 --> 00:04:01,810
‫Mas em vez de usar promessas como essa, vou

88
00:04:01,810 --> 00:04:03,920
‫começar a usar async await.

89
00:04:03,920 --> 00:04:04,860
‫Tudo bem.

90
00:04:04,860 --> 00:04:07,960
‫Portanto, esta função aqui deve ser uma função assíncrona.

91
00:04:07,960 --> 00:04:09,900
‫Portanto, tudo o que

92
00:04:09,900 --> 00:04:12,250
‫precisamos fazer é escrever async bem aqui.

93
00:04:12,250 --> 00:04:15,760
‫Então temos async e agora podemos aguardar o resultado dessa

94
00:04:15,760 --> 00:04:16,903
‫promessa aqui.

95
00:04:18,255 --> 00:04:21,010
‫Espero que você esteja familiarizado com isso.

96
00:04:21,010 --> 00:04:23,030
‫E, na verdade, tenho uma seção

97
00:04:23,030 --> 00:04:25,890
‫neste curso que trata exatamente desse tipo de coisa.

98
00:04:25,890 --> 00:04:27,490
‫Então, se você não assistiu

99
00:04:27,490 --> 00:04:30,920
‫a essa seção, mas ainda não está 100% familiarizado com o async await,

100
00:04:30,920 --> 00:04:33,280
‫vá em frente e assista a essa seção

101
00:04:33,280 --> 00:04:36,040
‫para que você realmente entenda o que está acontecendo aqui.

102
00:04:36,040 --> 00:04:39,270
‫Ok, então em vez de usar isso, aqui vou

103
00:04:39,270 --> 00:04:40,960
‫usar async await e salvar

104
00:04:40,960 --> 00:04:43,790
‫o valor do resultado dessa promessa na nova

105
00:04:43,790 --> 00:04:45,413
‫variável de passeio.

106
00:04:49,220 --> 00:04:52,020
‫Ok, agora a peça final do quebra-cabeça

107
00:04:52,020 --> 00:04:56,410
‫aqui é, é claro, passar alguns dados reais para este método de criação.

108
00:04:56,410 --> 00:04:58,410
‫E então, em vez

109
00:04:58,410 --> 00:05:01,310
‫desse objeto vazio, passaremos no corpo da

110
00:05:01,310 --> 00:05:05,020
‫solicitação, então req. corpo e esses são os

111
00:05:05,020 --> 00:05:08,010
‫dados que vêm com a solicitação de postagem, certo?

112
00:05:08,010 --> 00:05:09,290
‫Agora só mais uma

113
00:05:09,290 --> 00:05:12,600
‫vez, só para ter certeza de que tudo está claro para você.

114
00:05:12,600 --> 00:05:15,920
‫Ok, então podemos usar o modelo de passeio diretamente e

115
00:05:15,920 --> 00:05:18,340
‫chamar o método de criação nele.

116
00:05:18,340 --> 00:05:20,630
‫Então, para essa função, passamos os dados

117
00:05:20,630 --> 00:05:23,600
‫que queremos armazenar no banco de dados como um novo passeio.

118
00:05:23,600 --> 00:05:26,810
‫E esses dados vêm do corpo do post, certo?

119
00:05:26,810 --> 00:05:30,730
‫E isso é armazenado dentro do corpo do ponto da solicitação.

120
00:05:30,730 --> 00:05:32,460
‫Então, essa variável aqui.

121
00:05:32,460 --> 00:05:35,503
‫Agora, este método aqui retornará uma promessa.

122
00:05:36,473 --> 00:05:38,850
‫E esperamos essa promessa usando

123
00:05:38,850 --> 00:05:42,000
‫async await e então armazenamos esse resultado na

124
00:05:42,000 --> 00:05:44,050
‫variável newTour que será

125
00:05:44,050 --> 00:05:48,083
‫o documento recém-criado já com o ID e tudo, certo?

126
00:05:49,700 --> 00:05:51,130
‫Portanto, vou manter este

127
00:05:51,130 --> 00:05:53,160
‫código aqui apenas como uma referência.

128
00:05:53,160 --> 00:05:57,210
‫E, por enquanto, vamos pegar esse dado aqui de volta.

129
00:05:57,210 --> 00:05:58,363
‫Na verdade, um pedaço de código.

130
00:05:59,250 --> 00:06:00,720
‫Dê uma chance.

131
00:06:00,720 --> 00:06:03,950
‫E agora temos esse erro ES lint.

132
00:06:03,950 --> 00:06:05,360
‫Então, vamos dar uma

133
00:06:05,360 --> 00:06:07,300
‫olhada nisso, basta colocar o mouse aqui.

134
00:06:07,300 --> 00:06:10,500
‫E nos diz que as funções assíncronas não são suportadas

135
00:06:10,500 --> 00:06:13,230
‫até este nó 7. 6 e, portanto, este

136
00:06:13,230 --> 00:06:16,140
‫erro de lint ES vem do plugin de nó

137
00:06:16,140 --> 00:06:17,320
‫que realmente instalamos.

138
00:06:17,320 --> 00:06:18,450
‫Então você pode ver isso aqui.

139
00:06:18,450 --> 00:06:21,410
‫Tudo bem, então o que vamos fazer é simplesmente ir

140
00:06:21,410 --> 00:06:23,920
‫para o pacote. json e aqui

141
00:06:23,920 --> 00:06:25,600
‫você encontra a versão do

142
00:06:25,600 --> 00:06:27,180
‫nó que estamos realmente usando.

143
00:06:27,180 --> 00:06:28,383
‫Então isso é muito simples.

144
00:06:30,880 --> 00:06:33,790
‫Precisamos apenas especificar a propriedade engines

145
00:06:33,790 --> 00:06:36,673
‫aqui em nosso documento json.

146
00:06:39,070 --> 00:06:43,830
‫E defina o nó como maior ou

147
00:06:44,850 --> 00:06:47,230
‫igual a 10.

148
00:06:47,230 --> 00:06:48,850
‫Ok, e isso é porque

149
00:06:48,850 --> 00:06:51,053
‫neste curso estamos usando pelo menos o nó dez.

150
00:06:52,636 --> 00:06:56,490
‫Então, 7. 6 seria o suficiente para fazer esse erro

151
00:06:56,490 --> 00:06:58,610
‫desaparecer, mas é claro que especificamos a versão real

152
00:06:58,610 --> 00:06:59,890
‫que estamos realmente usando.

153
00:06:59,890 --> 00:07:01,690
‫Então, nós salvamos este aqui.

154
00:07:01,690 --> 00:07:03,010
‫Feche isso.

155
00:07:03,010 --> 00:07:06,500
‫E agora nosso erro aqui realmente se foi.

156
00:07:06,500 --> 00:07:09,560
‫Agora, só mais uma etapa antes de podermos realmente experimentar

157
00:07:09,560 --> 00:07:11,330
‫isso em nosso aplicativo Postman.

158
00:07:11,330 --> 00:07:14,210
‫E é isso que realmente precisamos para lidar com os erros.

159
00:07:14,210 --> 00:07:17,860
‫Ok, então tenha em mente que, com

160
00:07:17,860 --> 00:07:22,650
‫async await, precisamos testar os erros usando a sintaxe try catch.

161
00:07:22,650 --> 00:07:26,003
‫Então, escrevemos um bloco try.

162
00:07:27,160 --> 00:07:28,760
‫Em seguida, envolva todo o nosso código lá.

163
00:07:32,065 --> 00:07:33,615
‫E então, finalmente, um bloco de captura.

164
00:07:34,920 --> 00:07:39,190
‫Que como já sabemos tem acesso ao objeto de erro.

165
00:07:39,190 --> 00:07:41,410
‫E agora o que realmente colocamos aqui?

166
00:07:41,410 --> 00:07:42,940
‫Bem, precisamos pensar

167
00:07:42,940 --> 00:07:45,410
‫sobre quando exatamente um erro pode acontecer.

168
00:07:45,410 --> 00:07:47,790
‫Portanto, lembre-se de duas palestras

169
00:07:47,790 --> 00:07:50,410
‫atrás, quando estávamos criando nossos primeiros documentos.

170
00:07:50,410 --> 00:07:51,820
‫Ocorreu um

171
00:07:51,820 --> 00:07:53,870
‫erro quando tentamos criar um

172
00:07:53,870 --> 00:07:56,600
‫documento sem um dos campos obrigatórios, certo?

173
00:07:56,600 --> 00:07:58,700
‫E isso foi um erro de validação.

174
00:07:58,700 --> 00:08:02,370
‫E é um dos erros que seriam detectados aqui.

175
00:08:02,370 --> 00:08:05,290
‫Ok porque se tentássemos criar um documento

176
00:08:05,290 --> 00:08:07,640
‫digamos sem um dos campos obrigatórios

177
00:08:07,640 --> 00:08:09,900
‫então essa promessa que

178
00:08:09,900 --> 00:08:12,430
‫é criada aqui seria rejeitada, ok?

179
00:08:12,430 --> 00:08:15,000
‫E então, se tivermos uma promessa

180
00:08:15,000 --> 00:08:17,740
‫rejeitada aqui, ela entrará no bloco catch.

181
00:08:17,740 --> 00:08:20,870
‫Portanto, basicamente neste bloco catch queremos enviar

182
00:08:20,870 --> 00:08:23,050
‫de volta uma resposta

183
00:08:23,050 --> 00:08:25,580
‫dizendo que houve um erro.

184
00:08:25,580 --> 00:08:30,580
‫Tudo bem, então res. status aqui novamente e

185
00:08:30,670 --> 00:08:33,483
‫400 que significa solicitação incorreta. json e agora algo muito semelhante a este,

186
00:08:35,967 --> 00:08:36,980
‫mas seu

187
00:08:37,950 --> 00:08:40,290
‫status e isso falha e, em

188
00:08:40,290 --> 00:08:43,310
‫vez de dados aqui, enviamos uma mensagem e

189
00:08:44,270 --> 00:08:48,050
‫por enquanto vamos apenas definir a mensagem para o erro.

190
00:08:48,970 --> 00:08:51,520
‫Tudo bem.

191
00:08:52,560 --> 00:08:53,393
‫E agora

192
00:08:54,800 --> 00:08:59,260
‫vamos finalmente voltar ao nosso aplicativo Postman e fazer uma tentativa.

193
00:08:59,260 --> 00:09:01,643
‫Ok, então crie este e vamos

194
00:09:01,643 --> 00:09:03,990
‫agora criar um novo tour.

195
00:09:03,990 --> 00:09:06,170
‫Então, agora mesmo, temos o

196
00:09:06,170 --> 00:09:07,790
‫nome dificuldade

197
00:09:07,790 --> 00:09:11,370
‫de duração e preço e, na verdade, vamos

198
00:09:11,370 --> 00:09:13,860
‫adicionar também a classificação e

199
00:09:15,400 --> 00:09:18,040
‫isso precisa estar entre aspas 4. 7

200
00:09:21,050 --> 00:09:21,883
‫Tudo bem, agora é o momento.

201
00:09:22,900 --> 00:09:25,570
‫Envie e de fato aqui vamos nós.

202
00:09:25,570 --> 00:09:29,330
‫Portanto, este é o passeio que

203
00:09:29,330 --> 00:09:32,170
‫acabamos de criar.

204
00:09:32,170 --> 00:09:33,430
‫Temos nossa classificação.

205
00:09:33,430 --> 00:09:34,520
‫Temos o nosso nome e temos o nosso preço.

206
00:09:34,520 --> 00:09:36,950
‫E, claro, o ID criado automaticamente.

207
00:09:36,950 --> 00:09:39,780
‫Agora você pode notar que não temos dificuldade

208
00:09:39,780 --> 00:09:40,890
‫e nenhum preço.

209
00:09:40,890 --> 00:09:44,360
‫Bem, por que você acha que é?

210
00:09:44,360 --> 00:09:46,870
‫Bem, isso é porque esses dois campos não estão

211
00:09:46,870 --> 00:09:48,920
‫realmente em nosso esquema e, portanto,

212
00:09:48,920 --> 00:09:51,030
‫não são colocados no banco de dados.

213
00:09:51,030 --> 00:09:54,240
‫Portanto, tudo o mais que não estiver em

214
00:09:54,240 --> 00:09:56,730
‫nosso esquema é simplesmente ignorado.

215
00:09:56,730 --> 00:09:57,840
‫Então esse é o poder do nosso esquema, certo?

216
00:09:57,840 --> 00:10:01,800
‫Ótimo, agora vamos tentar enviar de novo e isso

217
00:10:01,800 --> 00:10:05,210
‫deve nos dar um erro, certo?

218
00:10:05,210 --> 00:10:08,113
‫E de fato lá vamos nós.

219
00:10:08,950 --> 00:10:10,650
‫Temos nosso 400 pedido incorreto.

220
00:10:10,650 --> 00:10:13,340
‫E temos essa mensagem que é o

221
00:10:13,340 --> 00:10:15,200
‫erro completo que recebemos.

222
00:10:15,200 --> 00:10:17,810
‫E aqui vemos que a mensagem de erro é uma chave duplicada.

223
00:10:17,810 --> 00:10:21,330
‫E isso é porque já temos o Test Tour 2.

224
00:10:21,330 --> 00:10:24,510
‫E assim não poderia criar outro.

225
00:10:24,510 --> 00:10:26,563
‫Então, vamos apenas criar outro aqui, como o Jonas Tour.

226
00:10:29,330 --> 00:10:33,960
‫Isso realmente não importa, ok?

227
00:10:33,960 --> 00:10:35,933
‫Eu só quero criá-lo,

228
00:10:36,850 --> 00:10:39,083
‫primeiro sem nada disso, só

229
00:10:39,940 --> 00:10:42,490
‫para ver se temos outro erro.

230
00:10:42,490 --> 00:10:45,030
‫E, de fato, temos mais alguns erros aqui.

231
00:10:45,030 --> 00:10:48,070
‫Desta vez dizendo que a validação do tour

232
00:10:48,070 --> 00:10:50,300
‫falhou porque um tour deve

233
00:10:50,300 --> 00:10:51,870
‫ter um preço.

234
00:10:51,870 --> 00:10:54,053
‫Ok, então você vê que agora temos

235
00:10:54,980 --> 00:10:57,170
‫esse tipo de estrutura de erro estranha aqui.

236
00:10:57,170 --> 00:11:00,090
‫Portanto, o Mongo DB retorna esse enorme objeto de erro completo.

237
00:11:00,090 --> 00:11:04,650
‫E mais tarde nós vamos cuidar disso.

238
00:11:04,650 --> 00:11:07,100
‫Portanto, teremos uma seção inteira somente sobre tratamento de erros.

239
00:11:07,100 --> 00:11:10,720
‫E então vamos criar alguns erros mais significativos.

240
00:11:10,720 --> 00:11:14,420
‫Ok, por enquanto vamos apenas substituir este objeto

241
00:11:14,420 --> 00:11:18,080
‫de erro por alguma string normal aqui.

242
00:11:18,080 --> 00:11:20,490
‫Então, digamos que dados inválidos foram enviados.

243
00:11:20,490 --> 00:11:25,440
‫Ok, então não faça algo assim em um aplicativo de produção

244
00:11:25,440 --> 00:11:27,950
‫real, mas novamente teremos algum tratamento

245
00:11:27,950 --> 00:11:30,350
‫de erro real um

246
00:11:30,350 --> 00:11:32,930
‫pouco mais tarde, que cuidará disso.

247
00:11:32,930 --> 00:11:35,430
‫Ok, exibindo erros significativos para o cliente.

248
00:11:35,430 --> 00:11:39,360
‫Então vamos voltar aqui e mandar

249
00:11:39,360 --> 00:11:40,750
‫de novo.

250
00:11:41,610 --> 00:11:43,040
‫E agora temos essa string normal aqui.

251
00:11:43,040 --> 00:11:45,950
‫Então, vamos apenas criar o preço aqui.

252
00:11:45,950 --> 00:11:50,510
‫Vamos configurá-lo para 567

253
00:11:50,510 --> 00:11:53,520
‫e enviá-lo.

254
00:11:54,490 --> 00:11:55,700
‫E agora você verá que nossa classificação

255
00:11:55,700 --> 00:11:56,860
‫padrão aqui ainda está funcionando.

256
00:11:56,860 --> 00:11:59,813
‫Agora vamos descobrir tudo isso na bússola também.

257
00:12:01,800 --> 00:12:05,810
‫E, de fato, obtemos nossos quatro passeios no banco de dados.

258
00:12:05,810 --> 00:12:09,860
‫Então, todos esses testes estranhos que estivemos

259
00:12:09,860 --> 00:12:12,210
‫fazendo até este ponto.

260
00:12:12,210 --> 00:12:14,960
‫Então, vamos excluir esses dois últimos.

261
00:12:14,960 --> 00:12:19,140
‫Isso foi realmente apenas para teste.

262
00:12:19,140 --> 00:12:21,123
‫Tudo bem.

263
00:12:24,500 --> 00:12:26,130
‫Então, algo deu errado aqui, eu acho.

264
00:12:26,130 --> 00:12:28,773
‫Ok, agora estamos de volta a esses dois.

265
00:12:30,130 --> 00:12:32,782
‫Vamos agora apenas criar o terceiro que realmente

266
00:12:32,782 --> 00:12:34,610
‫tínhamos antes na última seção.

267
00:12:34,610 --> 00:12:36,760
‫Qual é o Snow Adventurer.

268
00:12:36,760 --> 00:12:38,763
‫Então, o aventureiro da

269
00:12:42,490 --> 00:12:43,630
‫neve.

270
00:12:45,800 --> 00:12:47,080
‫O preço era ...

271
00:12:47,080 --> 00:12:48,280
‫Não tenho mais

272
00:12:48,280 --> 00:12:49,790
‫certeza como 697, talvez.

273
00:12:49,790 --> 00:12:51,973
‫E a classificação

274
00:12:54,410 --> 00:12:57,870
‫é seis ou, na verdade, 4. 8

275
00:12:57,870 --> 00:12:59,963
‫Mandou aquele cara.

276
00:13:01,360 --> 00:13:02,800
‫E então aqui vamos nós.

277
00:13:02,800 --> 00:13:04,600
‫Excelente.

278
00:13:04,600 --> 00:13:05,810
‫Apenas para recapitular rapidamente nossa função createTour.

279
00:13:05,810 --> 00:13:09,050
‫Portanto, temos um try catch aqui porque, na verdade, estamos usando

280
00:13:09,050 --> 00:13:10,740
‫uma função espera assíncrona aqui.

281
00:13:10,740 --> 00:13:13,833
‫Certo, então usamos async await por causa

282
00:13:14,859 --> 00:13:16,100
‫desse tour. create retorna

283
00:13:16,100 --> 00:13:18,910
‫uma promessa que

284
00:13:18,910 --> 00:13:21,500
‫estamos aguardando para que possamos armazenar o

285
00:13:21,500 --> 00:13:23,530
‫documento de tour recém-criado dentro dessa

286
00:13:23,530 --> 00:13:25,340
‫variável e enviá-lo junto com

287
00:13:25,340 --> 00:13:27,277
‫a resposta ao cliente aqui.

288
00:13:27,277 --> 00:13:30,280
‫Ok, mas caso haja um erro, como um

289
00:13:30,280 --> 00:13:32,600
‫erro de validação por exemplo, então

290
00:13:32,600 --> 00:13:34,850
‫esse erro será detectado

291
00:13:34,850 --> 00:13:37,120
‫e enviaremos outra coisa de volta

292
00:13:37,120 --> 00:13:39,700
‫ao cliente com esta mensagem de erro.

293
00:13:39,700 --> 00:13:41,900
‫Então é assim que criamos documentos usando o mangusto.

294
00:13:41,900 --> 00:13:44,890
‫A seguir, vamos falar sobre a leitura de documentos.

