1
00:00:03,710 --> 00:00:10,380
Agora que tivemos uma visão geral rápida de Mongoose ODM e

2
00:00:10,380 --> 00:00:16,710
como Mangoose traz esquemas para estruturar os documentos que armazenamos em nosso MongoDB,

3
00:00:16,710 --> 00:00:19,830
vamos ver como fazemos uso

4
00:00:19,830 --> 00:00:27,000
do módulo nó Mongoose e, em seguida, incorporá-lo em nossa aplicação nó.

5
00:00:27,000 --> 00:00:31,065
Em seguida, use Mangusto para se comunicar com o

6
00:00:31,065 --> 00:00:35,760
nosso servidor MongoDB e, em seguida, armazenar e recuperar

7
00:00:35,760 --> 00:00:41,355
documentos com informações de estrutura nos documentos.

8
00:00:41,355 --> 00:00:44,830
Para começar este exercício,

9
00:00:44,830 --> 00:00:48,080
vá para um local conveniente no seu computador.

10
00:00:48,080 --> 00:00:52,760
Então, aqui estou eu na pasta Node JS onde eu tenho armazenado

11
00:00:52,760 --> 00:00:57,020
todos os exemplos deste curso e, em seguida, eu vou

12
00:00:57,020 --> 00:01:02,210
criar uma nova pasta chamada nó Mangusto.

13
00:01:02,210 --> 00:01:10,320
Este é o lugar onde vamos criar o aplicativo nó usando Mangusto próximo.

14
00:01:10,320 --> 00:01:12,900
No terminal ou na janela de comando,

15
00:01:12,900 --> 00:01:19,080
mova para a pasta nó Mangoose e, em seguida, inicialize um aplicativo de nó lá.

16
00:01:19,080 --> 00:01:22,385
Então, deixe-me digitar npm init e, em seguida,

17
00:01:22,385 --> 00:01:26,359
inicializar o aplicativo nó e, em seguida, eu nomearia o aplicativo

18
00:01:26,359 --> 00:01:34,174
como Node-mangoose eo ponto de entrada é index.js git histórico

19
00:01:34,174 --> 00:01:42,590
, palavras-chave, autor e licença e vamos dizer ok.

20
00:01:42,590 --> 00:01:49,574
Uma vez que seu arquivo de pacote de nó é criado,

21
00:01:49,574 --> 00:01:54,500
abra o projeto no editor de texto de sua escolha.

22
00:01:54,500 --> 00:02:02,809
Então, aqui eu tenho meu projeto aberto no Visual Studio.

23
00:02:02,809 --> 00:02:05,915
Deixe-me ir para o arquivo package.json e, em seguida, adicionar

24
00:02:05,915 --> 00:02:14,750
no script de inicialização e, em seguida, vamos

25
00:02:14,750 --> 00:02:24,160
dizer iniciar índice nó como de costume sempre que começar com um novo aplicativo nó.

26
00:02:24,160 --> 00:02:29,945
Então, indo para o terminal ou a janela de comando, vamos instalar Mangusto.

27
00:02:29,945 --> 00:02:37,290
Então, no prompt, digite npm instalar Mangusto, salve.

28
00:02:39,470 --> 00:02:45,570
Que no momento é Mangusto 5.1.7.

29
00:02:45,570 --> 00:02:49,760
Então, estas são as versões que vou usar neste curso.

30
00:02:49,760 --> 00:02:54,920
Em seguida, indo para o meu aplicativo no editor.

31
00:02:54,920 --> 00:03:01,430
Deixe-me criar uma subpasta no projeto chamado como Modelos.

32
00:03:01,430 --> 00:03:07,320
Então, é aqui que vou armazenar todos os modelos para a minha aplicação.

33
00:03:07,340 --> 00:03:10,230
Na pasta models,

34
00:03:10,230 --> 00:03:15,170
deixe-me criar um novo arquivo chamado dishes.js.

35
00:03:15,170 --> 00:03:19,535
Então, aqui é onde eu vou criar o esquema e o modelo

36
00:03:19,535 --> 00:03:24,680
para o meu documento de pratos que eu vou armazenar,

37
00:03:24,680 --> 00:03:29,770
a coleção de pratos que armazena os documentos para cada prato.

38
00:03:29,770 --> 00:03:36,730
Então, bem aqui, deixe-me primeiro importar Mangusto.

39
00:03:39,320 --> 00:03:47,880
Então, vamos exigir Mangusto neste arquivo e, em seguida, dizer

40
00:03:47,880 --> 00:03:57,940
esquema const é esquema Mangusto.

41
00:03:59,420 --> 00:04:03,510
Em seguida, vamos criar o esquema aqui.

42
00:04:03,510 --> 00:04:13,845
Então, vamos dizer const dishSchema novo Esquema.

43
00:04:13,845 --> 00:04:19,590
Então, este é o lugar onde eu definir o esquema para o meu prato.

44
00:04:20,830 --> 00:04:27,270
Dentro deste esquema, deixe-me definir os vários valores.

45
00:04:27,270 --> 00:04:29,830
Então, eu vou dizer nome,

46
00:04:29,890 --> 00:04:34,405
que é o tipo String.

47
00:04:34,405 --> 00:04:41,480
Então, este é o tipo de esquema e, em seguida, este eu declararia como necessário.

48
00:04:41,480 --> 00:04:43,460
Então, vou dizer que é verdade.

49
00:04:43,460 --> 00:04:52,790
Então, cada documento terá o nome como um campo obrigatório lá e, em seguida, eu

50
00:04:52,790 --> 00:04:57,185
também vou declarar isso como um significado único que

51
00:04:57,185 --> 00:05:02,545
nenhum dois documentos deve ter o mesmo campo de nome lá dentro.

52
00:05:02,545 --> 00:05:08,230
Então, esse é o primeiro campo do meu documento.

53
00:05:10,190 --> 00:05:19,440
Em seguida, vamos também incluir outro campo chamado como, descrição.

54
00:05:19,440 --> 00:05:29,205
A descrição é da cadeia de caracteres de tipo e true obrigatório.

55
00:05:29,205 --> 00:05:35,165
Além disso, podemos ter Mangoose inserir automaticamente

56
00:05:35,165 --> 00:05:41,639
carimbos de data/hora em nosso modelo.

57
00:05:41,639 --> 00:05:50,340
Então, ali mesmo nós podemos apenas configurar os carimbos de tempo da bandeira: verdadeiro.

58
00:05:50,340 --> 00:05:55,810
Então, isso adicionará automaticamente o criado em e atualizado em,

59
00:05:55,810 --> 00:06:01,340
dois carimbos de data/hora em cada documento que é armazenado

60
00:06:01,340 --> 00:06:07,235
em nosso aplicativo e atualizará automaticamente esses valores.

61
00:06:07,235 --> 00:06:11,330
Sempre que atualizamos o documento e o criado em será

62
00:06:11,330 --> 00:06:15,390
inicializado automaticamente quando o documento for o primeiro criador deste tempo.

63
00:06:15,390 --> 00:06:22,680
Depois disso, diremos pratos var.

64
00:06:22,680 --> 00:06:24,549
Então, dado o esquema,

65
00:06:24,549 --> 00:06:29,605
agora vamos construir o modelo a partir deste esquema.

66
00:06:29,605 --> 00:06:35,215
Então, vamos dizer modelo Mangusto e prato,

67
00:06:35,215 --> 00:06:43,570
e isso vai ser usando o esquema prato que acabamos de declarar anteriormente.

68
00:06:43,570 --> 00:06:48,590
Em seguida, vamos exportar

69
00:06:48,590 --> 00:06:55,725
este modelo a partir deste arquivo aqui.

70
00:06:55,725 --> 00:06:58,410
Então, vamos dizer pratos de exportação de módulos.

71
00:06:58,410 --> 00:07:00,545
Então, agora nós construímos

72
00:07:00,545 --> 00:07:05,780
o esquema Mangusto e o modelo correspondente e o modelo agora é exportado a partir daqui.

73
00:07:05,780 --> 00:07:10,580
Então, isso pode ser importado em nosso aplicativo e usado.

74
00:07:10,580 --> 00:07:13,345
Então, dentro da nossa pasta de projeto,

75
00:07:13,345 --> 00:07:20,415
deixe-me criar um novo arquivo chamado index.js.

76
00:07:20,415 --> 00:07:23,265
No arquivo index.js,

77
00:07:23,265 --> 00:07:31,450
deixe-me primeiro exigir Mangusto,

78
00:07:31,820 --> 00:07:34,900
e depois disso podemos dizer

79
00:07:34,900 --> 00:07:44,970
const Pratos exigem modelos de pratos.

80
00:07:44,970 --> 00:07:49,210
Porque nós já criamos o modelo de pratos

81
00:07:49,210 --> 00:07:55,740
no arquivo de pratos modelos lá e, em seguida, estamos exigindo isso aqui.

82
00:07:55,740 --> 00:08:02,975
Agora, para estabelecer a conexão com o servidor Mongo,

83
00:08:02,975 --> 00:08:09,330
vamos dizer const URL mongodb.

84
00:08:09,840 --> 00:08:17,110
Localhost 27017, Confusão.

85
00:08:17,110 --> 00:08:25,760
Então, este banco de dados é aquele que nos conectaremos a partir do nosso aplicativo e

86
00:08:25,760 --> 00:08:35,125
, em seguida, podemos estabelecer a conexão dizendo const connect Mongoose.

87
00:08:35,125 --> 00:08:38,195
Mangusto suporta este método de conexão,

88
00:08:38,195 --> 00:08:41,695
que leva a URL como o primeiro parâmetro.

89
00:08:41,695 --> 00:08:44,250
Então, uma vez que tenhamos estabelecido isso,

90
00:08:44,250 --> 00:08:49,470
então nós simplesmente dizemos conectar então.

91
00:08:49,470 --> 00:08:52,280
Note que uma vez que já estamos usando promessas,

92
00:08:52,280 --> 00:08:57,680
podemos apenas dizer conectar então e, em seguida, isso terá

93
00:08:57,680 --> 00:09:03,774
uma função como o parâmetro

94
00:09:03,774 --> 00:09:10,175
e dentro daqui podemos agora conectar ao banco de dados.

95
00:09:10,175 --> 00:09:13,550
Então, agora, uma vez que esta conexão é estabelecida,

96
00:09:13,550 --> 00:09:17,800
deixe-me fazer um log console

97
00:09:17,800 --> 00:09:26,060
dizendo conectado corretamente ao servidor,

98
00:09:26,100 --> 00:09:36,355
e aqui eu posso criar um novo prato dizendo var

99
00:09:36,355 --> 00:09:45,560
novo prato e, em seguida, pratos e dentro aqui eu posso especificar

100
00:09:45,560 --> 00:09:50,170
um documento então eu estou criando um novo prato deste tipo e então aqui Vou

101
00:09:50,170 --> 00:09:55,510
especificar os dois campos que são obrigatórios.

102
00:09:55,510 --> 00:09:57,920
Então eu vou dizer nome,

103
00:10:07,950 --> 00:10:16,390
descrição e assim é assim que você criaria um novo prato e, em seguida, uma vez que criamos

104
00:10:16,390 --> 00:10:24,910
um novo prato a partir do modelo, vamos simplesmente dizer novo prato salvar.

105
00:10:24,910 --> 00:10:29,760
O método salvar fará com que este valor Dish para ser

106
00:10:29,760 --> 00:10:35,060
salvo e, em seguida, como você espera vai retornar uma promessa e,

107
00:10:35,060 --> 00:10:45,165
em seguida, aqui vamos obter o valor Dish como chamada de volta lá e, em seguida, eu

108
00:10:45,165 --> 00:10:54,940
posso simplesmente registrar o valor Dish aqui e, em seguida, depois disso, vamos dizer

109
00:10:54,940 --> 00:11:00,915
Pratos encontrar e assim vamos encontrar

110
00:11:00,915 --> 00:11:07,090
todos os Pratos e, em seguida, dizer executivo.

111
00:11:07,090 --> 00:11:10,255
O executivo irá garantir que isso é

112
00:11:10,255 --> 00:11:15,250
executado e que ele irá retornar uma promessa e para que a promessa

113
00:11:15,250 --> 00:11:19,660
será retornada para que ele possa então

114
00:11:19,660 --> 00:11:27,040
encadear o método para os restantes.

115
00:11:27,040 --> 00:11:33,975
Então você vê como eu estou usando promessas e, em seguida, eu estou invocando o método anterior para que este

116
00:11:33,975 --> 00:11:41,395
encontre todos os pratos dentro do meu banco de dados,

117
00:11:41,395 --> 00:11:45,905
na coleção Dishes e, em seguida, torná-lo disponível para mim.

118
00:11:45,905 --> 00:11:55,550
Então, quando eu obter os pratos, em seguida, eu posso apenas console log os pratos apenas para ver o que é

119
00:11:55,550 --> 00:11:58,790
devolvido e isso, obviamente, nesta fase deve

120
00:11:58,790 --> 00:12:02,710
retornar este único prato que eu inseri na

121
00:12:02,710 --> 00:12:10,940
minha coleção Distras e, em seguida, vamos dizer

122
00:12:11,010 --> 00:12:15,550
retorno Pratos remover com

123
00:12:15,550 --> 00:12:19,930
um objeto JavaScript vazio que irá remover todos os pratos

124
00:12:19,930 --> 00:12:24,384
do banco de dados e retornar

125
00:12:24,384 --> 00:12:31,790
conexão mangusto perto que fecha a conexão com o banco de dados.

126
00:12:35,040 --> 00:12:38,830
E pegar qualquer erro neste momento.

127
00:12:38,830 --> 00:12:49,430
Então, vamos usar a captura e, em seguida, o registro do console.

128
00:12:50,600 --> 00:12:57,820
É isso. Então o que estamos fazendo aqui é que estamos criando o novo este prato e, em seguida, estamos

129
00:12:57,820 --> 00:13:04,255
salvando o prato, em seguida, estamos encontrando todos os pratos da coleção.

130
00:13:04,255 --> 00:13:06,740
É isso. Estamos usando promessas aqui,

131
00:13:06,740 --> 00:13:10,435
então acorrentamos todas as covas aqui. É isso.

132
00:13:10,435 --> 00:13:15,595
Vamos salvar as alterações e, em seguida, ver este aplicativo em execução.

133
00:13:15,595 --> 00:13:17,455
Vá para o terminal,

134
00:13:17,455 --> 00:13:21,505
no prompt tipo npm start e você

135
00:13:21,505 --> 00:13:25,735
verá que meu aplicativo nó é executado e, em seguida, ele mostra

136
00:13:25,735 --> 00:13:33,110
, primeiro, que ele criou este prato particular.

137
00:13:33,110 --> 00:13:37,285
Observe em particular, que esses dois campos,

138
00:13:37,285 --> 00:13:39,365
atualizados e criados em,

139
00:13:39,365 --> 00:13:43,465
esses dois carimbos de data/hora foram adicionados automaticamente

140
00:13:43,465 --> 00:13:47,790
ao prato aqui e assim você pode ver que o criado em e

141
00:13:47,790 --> 00:13:51,630
atualizado em timestamps são exatamente os mesmos no momento e, em

142
00:13:51,630 --> 00:13:57,235
seguida, o ID também é adicionado automaticamente em.

143
00:13:57,235 --> 00:14:03,210
Na próxima etapa, estamos imprimindo todos os Pratos que foram recuperados e assim você

144
00:14:03,210 --> 00:14:10,340
pode ver que este único prato está na coleção,

145
00:14:10,340 --> 00:14:15,935
coleção Pratos, e isso é o que é impresso na tela aqui.

146
00:14:15,935 --> 00:14:25,660
Vamos agora inicializar o repositório Git e, em seguida, vamos configurar o arquivo gitignore got

147
00:14:25,660 --> 00:14:35,125
para ir para o editor, em seguida, criamos o arquivo.gitignore e, em seguida, adicionar

148
00:14:35,125 --> 00:14:40,240
módulos de nó para o arquivo gitignore e salvar as alterações e, em

149
00:14:40,240 --> 00:14:45,325
seguida, voltar para o prompt deixe-me

150
00:14:45,325 --> 00:14:48,550
digitar git status e vemos que

151
00:14:48,550 --> 00:14:51,955
temos esses arquivos que não foram verificados em então vamos dizer

152
00:14:51,955 --> 00:14:56,545
git add e, em seguida, git

153
00:14:56,545 --> 00:15:04,535
commit a mensagem Mangusto Parte Um.

154
00:15:04,535 --> 00:15:08,110
Com isso, completamos este exercício.

155
00:15:08,110 --> 00:15:14,300
Neste exercício, vimos como é fácil configurar uma aplicação de nó com

156
00:15:14,300 --> 00:15:21,335
mangusto e conectar-se ao nosso servidor MongoDB e, em seguida, interagir com ele.

157
00:15:21,335 --> 00:15:24,985
Agora, uma vez que o mangusto constrói sobre o servidor

158
00:15:24,985 --> 00:15:28,980
MongoDB, Mangusto pode acessar todos os vários métodos

159
00:15:28,980 --> 00:15:32,690
que são suportados pelo driver MongoDB também.