1 00:00:00,000 --> 00:00:00,500 2 00:00:00,500 --> 00:00:10,960 [Música tocando] 3 00:00:10,960 --> 00:00:12,960 ROGER ZURAWICKI: Oi, meu nome é Roger Zurawicki, 4 00:00:12,960 --> 00:00:16,410 e eu estarei cobrindo o seminário CS50 Meteor. 5 00:00:16,410 --> 00:00:21,520 Meteor é um novo quadro dedicado para o novo tipo de teia, 6 00:00:21,520 --> 00:00:25,220 não o PHP fazer pedidos e para trás tipo 7 00:00:25,220 --> 00:00:29,070 de web vimos no set PHPP, mas o JavaScript mais dinâmico 8 00:00:29,070 --> 00:00:31,370 partes da trama. 9 00:00:31,370 --> 00:00:36,260 Coisas Meteor pode fazer inclui atualização em tempo real 10 00:00:36,260 --> 00:00:42,380 e comunicar imediatamente entre usuários do mesmo website. 11 00:00:42,380 --> 00:00:46,420 >> Para este seminário, temos código hospedado no meu GitHub. 12 00:00:46,420 --> 00:00:49,690 Você pode ir a este URL e baixá-lo. 13 00:00:49,690 --> 00:00:53,085 Se você sabe como usar Git, você pode clonar o repositório. 14 00:00:53,085 --> 00:00:55,460 Se você não sabe como usar Git ou não usei GitHub, 15 00:00:55,460 --> 00:00:57,030 que é completamente bem. 16 00:00:57,030 --> 00:01:00,480 Eu vou te mostrar muito rapidamente como podemos ir para GitHub, 17 00:01:00,480 --> 00:01:03,604 e há uma opção para baixar um zip ali mesmo. 18 00:01:03,604 --> 00:01:06,770 Depois de baixar este diretório, você pode começar a jogar com o nosso código. 19 00:01:06,770 --> 00:01:10,200 20 00:01:10,200 --> 00:01:13,190 >> Mais informações sobre Meteor pode ser encontrada em meteor.com. 21 00:01:13,190 --> 00:01:16,580 Na pasta Seminário, eu realmente tem alguns projetos de meteoros que podemos usar. 22 00:01:16,580 --> 00:01:20,380 23 00:01:20,380 --> 00:01:26,400 Uma das pastas que temos em nossa projeto seminário é o app Todos. 24 00:01:26,400 --> 00:01:28,780 Então, se eu entrar nele I, Meteor tem instalado. 25 00:01:28,780 --> 00:01:35,690 Então, para executá-lo, eu só precisa digitar Meteor, e Meteor irá instalar. 26 00:01:35,690 --> 00:01:38,310 Como você pode ver, temos que certificar-se de que instalou Meteor. 27 00:01:38,310 --> 00:01:40,562 Então, eu estou indo só para executá-lo mais uma vez 28 00:01:40,562 --> 00:01:42,520 ter certeza de que Meteor está instalado corretamente. 29 00:01:42,520 --> 00:01:46,370 30 00:01:46,370 --> 00:01:48,450 >> Embora eu tenha Meteor instalação, eu posso mostrar-lhe 31 00:01:48,450 --> 00:01:53,760 algumas demonstrações ao vivo de sites de meteoros indo ao vivo agora na internet. 32 00:01:53,760 --> 00:01:57,990 Eu tenho uma demonstração do nosso aplicativo. 33 00:01:57,990 --> 00:02:00,740 Você pode acessá-lo no seguinte URL. 34 00:02:00,740 --> 00:02:06,350 Este é o aplicativo de fazer isso nós temos em nosso diretório seminário. 35 00:02:06,350 --> 00:02:09,940 A URL para isso é rozu-rabbit.meteor.com. 36 00:02:09,940 --> 00:02:14,782 Você verá que vai realmente Meteor hospedar seus projetos Meteor gratuitamente. 37 00:02:14,782 --> 00:02:17,490 E no final do seminário, você vai ser capaz de fazer isso também. 38 00:02:17,490 --> 00:02:20,550 39 00:02:20,550 --> 00:02:22,160 >> Este é um aplicativo para fazer a lista. 40 00:02:22,160 --> 00:02:27,740 E você pode entrar, criar contas, e adicionar tarefas. 41 00:02:27,740 --> 00:02:30,020 Você pode criar uma conta como tal. 42 00:02:30,020 --> 00:02:33,050 43 00:02:33,050 --> 00:02:35,850 E agora, uma vez que você tem um conta, você pode adicionar tarefas. 44 00:02:35,850 --> 00:02:42,780 Por exemplo, uma das tarefas I pode precisar de ir buscar a minha roupa. 45 00:02:42,780 --> 00:02:45,160 E se você está neste site on-line, você vai 46 00:02:45,160 --> 00:02:49,790 realmente ver esta tarefa em seu computador em tempo real. 47 00:02:49,790 --> 00:02:53,760 >> Eu posso mostrar-lhe uma demonstração rápida deste abrindo rozu-coelho 48 00:02:53,760 --> 00:02:56,700 em outra guia com a mesma URL. 49 00:02:56,700 --> 00:03:00,360 E vemos que os mesmos dados vem à tona. 50 00:03:00,360 --> 00:03:02,240 Nós também pode executá-lo em um navegador diferente. 51 00:03:02,240 --> 00:03:03,420 Digamos que eu executá-lo no Safari. 52 00:03:03,420 --> 00:03:04,720 Dessa forma, não está logado. 53 00:03:04,720 --> 00:03:07,750 54 00:03:07,750 --> 00:03:11,060 Portanto, temos a mesma Meteor app, e uma vez que ele carrega, 55 00:03:11,060 --> 00:03:13,910 vamos ver os mesmos dados fizemos no primeiro. 56 00:03:13,910 --> 00:03:16,710 Como você pode ver, eu não estou conectado aqui. 57 00:03:16,710 --> 00:03:20,000 E quando os dados cheques de audiência, ele atualiza em todos os browsers 58 00:03:20,000 --> 00:03:20,910 simultaneamente. 59 00:03:20,910 --> 00:03:23,740 Este é um dos realmente recursos interessantes sobre Meteor. 60 00:03:23,740 --> 00:03:27,700 Com quase nenhum trabalho, você tenho um aplicativo de atualização ao vivo 61 00:03:27,700 --> 00:03:31,240 que as alterações em todas seus dispositivos ao mesmo tempo. 62 00:03:31,240 --> 00:03:36,690 >> Se eu marque a caixa de seleção aqui na minha lista para fazer, teremos, 63 00:03:36,690 --> 00:03:41,230 no meu outro navegador Chrome, o item verificado fora. 64 00:03:41,230 --> 00:03:42,605 E isto acontece instantaneamente. 65 00:03:42,605 --> 00:03:46,340 66 00:03:46,340 --> 00:03:47,280 Tudo certo. 67 00:03:47,280 --> 00:03:52,730 Portanto, parece que Meteor instalação está pronto agora. 68 00:03:52,730 --> 00:03:57,000 Então agora vamos voltar para o Todos app e executar este localmente. 69 00:03:57,000 --> 00:04:01,599 >> Se você tem um projeto Meteor, você pode basta executá-lo com o Meteor comando. 70 00:04:01,599 --> 00:04:03,640 Uma vez que você fizer isso, Meteor vai fazer alguma preparação 71 00:04:03,640 --> 00:04:06,120 para certificar-se todos seu código está em xeque. 72 00:04:06,120 --> 00:04:12,440 E, em seguida, ele vai dizer-lhe que o projeto está pronto para ser servido. 73 00:04:12,440 --> 00:04:17,750 Pode ser necessário permitir que o seu firewall, se o computador bloqueia você. 74 00:04:17,750 --> 00:04:22,440 >> Então, o que está me dizendo Meteor agora é que neste website 75 00:04:22,440 --> 00:04:26,100 local para o meu computador, eu posso ver o que este projeto é Meteor. 76 00:04:26,100 --> 00:04:29,290 Note que agora, meu aplicativo é não está acessível para a internet. 77 00:04:29,290 --> 00:04:35,170 Nós vamos cobrir a forma de trazer o seu Meteor app para um site ao vivo um pouco mais tarde. 78 00:04:35,170 --> 00:04:40,510 Então, eu estou indo só para copiar este URL agora e ir para o Google Chrome. 79 00:04:40,510 --> 00:04:42,600 >> E este é o que fazer listar a partir do exemplo. 80 00:04:42,600 --> 00:04:46,080 Você pode ver eles implementaram mais algumas funcionalidades aqui. 81 00:04:46,080 --> 00:04:49,210 Temos diferentes abas, nós têm os mesmos recursos de conta, 82 00:04:49,210 --> 00:04:52,141 e nós podemos adicionar novas listas. 83 00:04:52,141 --> 00:04:54,140 Agora, um dos realmente recurso interessante sobre Meteor 84 00:04:54,140 --> 00:04:57,450 é que não só esta pode trabalhar em seu navegador, 85 00:04:57,450 --> 00:05:00,030 mas você também pode criar nativo para iPhone e Android 86 00:05:00,030 --> 00:05:02,990 aplicativos através de uma ferramenta chamada PhoneGap. 87 00:05:02,990 --> 00:05:06,740 >> Então, alguns projetos virão pré-configurado para a execução de 88 00:05:06,740 --> 00:05:08,700 no iOS, como este app Todos. 89 00:05:08,700 --> 00:05:14,780 Portanto, tudo o que eu preciso fazer para executá-lo em iOS é tipo Meteor, executar e, em seguida, iOS. 90 00:05:14,780 --> 00:05:17,540 E quando eu faço isso, Meteor preparará o pacote novamente. 91 00:05:17,540 --> 00:05:21,670 E então, quando ele estiver pronto, ele vai carregar o simulador iOS no meu comando. 92 00:05:21,670 --> 00:05:24,745 Note que você só pode executar aplicativos iOS Se você tem um computador Mac. 93 00:05:24,745 --> 00:05:27,650 94 00:05:27,650 --> 00:05:30,730 Você pode executar seus aplicativos em Android em todas as plataformas. 95 00:05:30,730 --> 00:05:34,070 96 00:05:34,070 --> 00:05:38,290 >> Então, agora você pode ver que o meu iPhone simulador surgiu na minha tela. 97 00:05:38,290 --> 00:05:40,370 E em apenas um momento, ele vai carregar com o app. 98 00:05:40,370 --> 00:05:46,070 99 00:05:46,070 --> 00:05:48,490 Se fizermos com que apenas um pouco menor para caber na tela, 100 00:05:48,490 --> 00:05:50,780 vemos que temos o nosso aplicativo para iPhone. 101 00:05:50,780 --> 00:05:53,220 E só assim nós não ficar confuso, vamos fazer 102 00:05:53,220 --> 00:05:59,790 certeza de que estamos no mesmo website, o host local 3000. 103 00:05:59,790 --> 00:06:03,490 >> Então, aqui está um exemplo do app Meteor que eu tenho, 104 00:06:03,490 --> 00:06:08,770 o app Todos, rodando tanto em um telefone e em um navegador web. 105 00:06:08,770 --> 00:06:10,770 E quando eu mudar coisas no navegador da web, 106 00:06:10,770 --> 00:06:12,675 vai imediatamente para o telefone. 107 00:06:12,675 --> 00:06:16,500 E eu posso excluir alguma coisa no telefone, e isso muda no navegador da web. 108 00:06:16,500 --> 00:06:21,050 >> Agora, normalmente para criar nativa app telefone para iOS ou Android, 109 00:06:21,050 --> 00:06:26,090 você precisa saber Java ou Objective C. A tecnologia usa Meteor 110 00:06:26,090 --> 00:06:29,240 para permitir JavaScript para funcionar como seu aplicativo é chamado PhoneGap. 111 00:06:29,240 --> 00:06:31,320 O que o seu app essencialmente é é um navegador web. 112 00:06:31,320 --> 00:06:34,500 E Meteor manipula todo as partes complicadas envolvidas 113 00:06:34,500 --> 00:06:39,820 para trazer esse navegador para seu iPhone ou o seu dispositivo Android. 114 00:06:39,820 --> 00:06:42,210 Você pode ver que o interface com o usuário é lisa, 115 00:06:42,210 --> 00:06:45,290 e olha e se sente muito muito parecido com um aplicativo nativo. 116 00:06:45,290 --> 00:06:48,620 Observe que, se eu ir para a casa tela agora, eu também obter um ícone. 117 00:06:48,620 --> 00:06:50,880 Este não é um site como o você encontraria em Safari. 118 00:06:50,880 --> 00:06:51,860 Este é o seu próprio app. 119 00:06:51,860 --> 00:06:54,130 Você pode instalar e excluí-lo se você gostaria. 120 00:06:54,130 --> 00:06:59,500 121 00:06:59,500 --> 00:07:04,436 >> Podemos brevemente mostrar o que o código para este tipo de Todos app parece. 122 00:07:04,436 --> 00:07:08,260 Se você olhar na pasta Todos, você vai ver que existem muitas pastas. 123 00:07:08,260 --> 00:07:11,440 Mas, ao longo do curso do seminário, vamos 124 00:07:11,440 --> 00:07:14,780 entender o que cada pasta é usada para. 125 00:07:14,780 --> 00:07:17,830 Vamos para o terminal para que pode ver os arquivos um pouco melhor. 126 00:07:17,830 --> 00:07:20,410 >> Eu estou indo para pressionar Control C para parar o servidor, 127 00:07:20,410 --> 00:07:22,770 e agora eu estou de volta no app Todos. 128 00:07:22,770 --> 00:07:26,660 Tenho pastas diferentes aqui, como a pasta do cliente, a pasta do servidor. 129 00:07:26,660 --> 00:07:30,500 E essas pastas simplesmente significar que tudo na pasta cliente 130 00:07:30,500 --> 00:07:32,630 será executado em seu navegador. 131 00:07:32,630 --> 00:07:35,530 Tudo em uma pasta do servidor é executado em um servidor. 132 00:07:35,530 --> 00:07:38,100 >> O que eu quero apontar fora é que o que tínhamos 133 00:07:38,100 --> 00:07:42,140 quando tivemos o nosso telefone em execução e nosso navegador, estes eram clientes. 134 00:07:42,140 --> 00:07:45,730 Mas o que está sendo executado em um terminal, que é o servidor. 135 00:07:45,730 --> 00:07:48,710 Temos outras pastas, como lib, que é o código da biblioteca, 136 00:07:48,710 --> 00:07:51,050 como seu ajudante funções, que você pode 137 00:07:51,050 --> 00:07:53,710 usar tanto no cliente e no servidor. 138 00:07:53,710 --> 00:07:55,820 E então você tem um público pasta e recursos 139 00:07:55,820 --> 00:07:59,310 pasta necessária para a obtenção de suas imagens e outro CSS carregado. 140 00:07:59,310 --> 00:08:02,630 141 00:08:02,630 --> 00:08:09,360 >> Se você tiver instalado Meteor, vamos continuar com o tutorial para Meteor. 142 00:08:09,360 --> 00:08:12,790 Você pode ir a este URL, meteor.com/install, 143 00:08:12,790 --> 00:08:17,990 para obter a linha de comando que eu mostrei que instala Meteor. 144 00:08:17,990 --> 00:08:20,240 Vamos passar pelo primeiro alguns passos para obter uma melhor 145 00:08:20,240 --> 00:08:22,760 sente sobre como instalar Meteor. 146 00:08:22,760 --> 00:08:28,000 >> Mas, primeiro, eu acho que é importante que analisar um pouco de JavaScript. 147 00:08:28,000 --> 00:08:32,360 Para mostrar-lhe alguns exemplos de como o nosso conhecimento C pode ser traduzido 148 00:08:32,360 --> 00:08:34,950 para JavaScript, eu tenho criado alguns exemplos. 149 00:08:34,950 --> 00:08:36,940 Eles estão no diretório js. 150 00:08:36,940 --> 00:08:41,750 Portanto, se nos seminários pasta que olhe, há uma pasta chamada js. 151 00:08:41,750 --> 00:08:44,540 E, aqui, temos alguns exemplos. 152 00:08:44,540 --> 00:08:50,120 >> Vamos abrir a primeira exemplo e ver muito rapidamente. 153 00:08:50,120 --> 00:08:53,980 O que vemos é o seu padrão Olá comando mundo. 154 00:08:53,980 --> 00:08:56,520 Você percebe em C que você tem algumas linhas. 155 00:08:56,520 --> 00:09:00,490 E como estudantes CS50 sabe, precisamos de uma função principal, 156 00:09:00,490 --> 00:09:05,730 e nós temos que inclui a norma I / O biblioteca, a fim de chamar printf. 157 00:09:05,730 --> 00:09:09,320 >> Vejamos como JavaScript compara. 158 00:09:09,320 --> 00:09:11,560 Eu vou abrir ex1.js. 159 00:09:11,560 --> 00:09:14,650 Comentado é o que o C código seria semelhante, 160 00:09:14,650 --> 00:09:17,550 e a linha inferior é tudo você precisa para ser executado em Node. 161 00:09:17,550 --> 00:09:20,452 Você não precisa de uma função principal, você Não é necessário incluir todos os arquivos, 162 00:09:20,452 --> 00:09:21,660 e você não precisa voltar. 163 00:09:21,660 --> 00:09:23,810 Apenas chame console.log. 164 00:09:23,810 --> 00:09:26,370 Isso é o equivalente de seu printf. 165 00:09:26,370 --> 00:09:29,310 >> E leva o mesmo argumentos printf faria. 166 00:09:29,310 --> 00:09:33,870 E, a fim de executá-lo, em vez de correr fazer EX1, 167 00:09:33,870 --> 00:09:38,930 você teria apenas que chamar ex1.js. Nó 168 00:09:38,930 --> 00:09:41,830 Você escreve Nó e, em seguida, o arquivo, e ele é executado. 169 00:09:41,830 --> 00:09:43,580 Ela não fica compilado. 170 00:09:43,580 --> 00:09:45,970 JavaScript é uma linguagem interpretada. 171 00:09:45,970 --> 00:09:49,150 Por isso, não necessita de ser compilado antes de ser executado. 172 00:09:49,150 --> 00:09:53,450 Se eu quisesse correr ex1.c, Eu tenho que fazê-lo em primeiro lugar, 173 00:09:53,450 --> 00:09:59,160 e então eu posso rodar o executável para obter o mesmo resultado. 174 00:09:59,160 --> 00:10:02,460 >> Vamos rapidamente cobrir alguns outros conceitos JavaScript. 175 00:10:02,460 --> 00:10:04,490 Vejamos exemplo dois. 176 00:10:04,490 --> 00:10:14,690 Em ex2.js, em ex2.c, nós podemos ver que temos algum código. 177 00:10:14,690 --> 00:10:16,550 Deixe-me ir rapidamente para uma melhor editor de texto 178 00:10:16,550 --> 00:10:18,400 que irá mostrar estes novas linhas um pouco melhor. 179 00:10:18,400 --> 00:10:21,760 180 00:10:21,760 --> 00:10:22,380 Tudo certo. 181 00:10:22,380 --> 00:10:24,190 Aqui temos o exemplo 2.c. 182 00:10:24,190 --> 00:10:27,360 Aqui nós temos diferentes tipos que estamos imprimindo. 183 00:10:27,360 --> 00:10:30,880 E, como sabemos, leva printf diferentes argumentos por cento 184 00:10:30,880 --> 00:10:34,050 para acessar diferentes partes de dados. 185 00:10:34,050 --> 00:10:36,840 Se queremos imprimir uma corda, que chamamos% s. 186 00:10:36,840 --> 00:10:40,390 Se queremos chamar um flutuante número de ponto, chamamos% f. 187 00:10:40,390 --> 00:10:45,810 E não há nenhuma maneira fácil de chamar um Boolean pelo seu valor verdadeiro ou falso. 188 00:10:45,810 --> 00:10:50,760 Mas se você usar% d, você pode obter um 0 ou um 1 para falso e verdadeiro. 189 00:10:50,760 --> 00:10:53,270 >> JavaScript é um pouco melhor para nós. 190 00:10:53,270 --> 00:10:57,740 Em JavaScript, vamos olhar para os poucos diferenças que temos neste arquivo. 191 00:10:57,740 --> 00:11:05,790 Em primeiro lugar, você notar que em C, temos de inicializar todas as variáveis ​​com um tipo. 192 00:11:05,790 --> 00:11:06,940 S é uma estrela de char. 193 00:11:06,940 --> 00:11:08,930 É uma cadeia, e ele Não pode ser de qualquer outro tipo. 194 00:11:08,930 --> 00:11:10,450 N é um float. 195 00:11:10,450 --> 00:11:11,780 B é um Bool. 196 00:11:11,780 --> 00:11:14,220 >> Mas em JavaScript, existem tipos dinâmicos. 197 00:11:14,220 --> 00:11:16,400 Isso significa que você não faz precisa dizer JavaScript 198 00:11:16,400 --> 00:11:17,860 quais os tipos suas variáveis ​​será. 199 00:11:17,860 --> 00:11:22,730 Você acabou de dizer var para a variável, o nome da variável, e, em seguida, o seu valor. 200 00:11:22,730 --> 00:11:24,690 Assim, uma var pode ser qualquer coisa realmente. 201 00:11:24,690 --> 00:11:25,640 Pode ser uma string. 202 00:11:25,640 --> 00:11:27,300 Pode ser um número de ponto flutuante. 203 00:11:27,300 --> 00:11:28,560 Pode ser um personagem. 204 00:11:28,560 --> 00:11:31,250 Pode ser um booleano. 205 00:11:31,250 --> 00:11:34,380 E de registro do console funciona um pouco diferente. 206 00:11:34,380 --> 00:11:37,340 Se você deseja imprimir um número, você chama% d. 207 00:11:37,340 --> 00:11:41,740 Mas a maioria dos valores podem ser impressas como cordas muito bem. 208 00:11:41,740 --> 00:11:46,220 >> Vamos executar isso em Node para ver o que iria acontecer. 209 00:11:46,220 --> 00:11:51,880 Eu posso chamar ex2.js Nó, e nós temos printf 210 00:11:51,880 --> 00:11:56,870 com o CS50 valores, como N o número de ponto flutuante, 211 00:11:56,870 --> 00:12:00,620 e, em seguida, B como o booleano convertida para uma string verdade. 212 00:12:00,620 --> 00:12:03,830 Que tal se fizéssemos exemplo 2.c? 213 00:12:03,830 --> 00:12:09,630 Bem, ainda temos alguns mais aborrecimentos com printf. 214 00:12:09,630 --> 00:12:13,110 Observe que o ponto flutuante número tem de ser formatado corretamente, 215 00:12:13,110 --> 00:12:18,120 e que o booleano não pode simplesmente ser apresentado como verdadeiro ou falso. 216 00:12:18,120 --> 00:12:18,620 Tudo certo. 217 00:12:18,620 --> 00:12:22,680 Agora vamos olhar para o exemplo de três. 218 00:12:22,680 --> 00:12:26,470 No exemplo de três, estamos mostrando como você usaria um loop. 219 00:12:26,470 --> 00:12:27,630 Na verdade, é muito simples. 220 00:12:27,630 --> 00:12:31,430 Uma das coisas agradáveis ​​sobre JavaScript é que ele é baseado C. 221 00:12:31,430 --> 00:12:33,920 Isso significa que um monte de seu código será muito similar 222 00:12:33,920 --> 00:12:36,490 e me sinto muito muito mesmo. 223 00:12:36,490 --> 00:12:39,220 Em um loop for, a única coisa que realmente mudou aqui 224 00:12:39,220 --> 00:12:41,840 é, em vez de int i, temos var i. 225 00:12:41,840 --> 00:12:45,470 Nós ainda podemos atribuí-lo a valorizar zero, verifique se ele é inferior a cinco, 226 00:12:45,470 --> 00:12:49,390 e incrementá-lo por um com o operador ++. 227 00:12:49,390 --> 00:12:56,286 Chamamos console.log no i, e que nos imprimir um número a cada linha. 228 00:12:56,286 --> 00:12:58,410 Vamos executá-lo muito rapidamente para ver o que ele produz. 229 00:12:58,410 --> 00:13:02,320 230 00:13:02,320 --> 00:13:03,880 Ficamos com um novo número em cada linha. 231 00:13:03,880 --> 00:13:06,920 Outra coisa que eu quero que você a notar com console.log 232 00:13:06,920 --> 00:13:09,960 é que você não tem que escrever barra invertida n para a nova linha. 233 00:13:09,960 --> 00:13:12,480 Console.log imprimirá tudo em sua própria linha. 234 00:13:12,480 --> 00:13:14,585 Isso é um bom recurso JavaScript que nos dá. 235 00:13:14,585 --> 00:13:18,440 236 00:13:18,440 --> 00:13:22,600 >> Agora vamos abrir exemplo quatro. 237 00:13:22,600 --> 00:13:28,710 No exemplo quatro, em primeiro lugar no C, estamos chamando algumas funções. 238 00:13:28,710 --> 00:13:33,290 Observe que temos de declarar a funções antes de usá-los em principal. 239 00:13:33,290 --> 00:13:37,250 Se tivéssemos principal em primeiro lugar e em seguida, adicionar e, em seguida, alta, faça, 240 00:13:37,250 --> 00:13:39,540 clang, ou GCC seria dá-nos um erro dizendo 241 00:13:39,540 --> 00:13:41,060 que ele não sabe o que é alta. 242 00:13:41,060 --> 00:13:42,780 Ele não sabe o que é add. 243 00:13:42,780 --> 00:13:46,480 Assim, em C, você tem que ser exigente quanto à ordem em que você chama de suas funções. 244 00:13:46,480 --> 00:13:49,220 245 00:13:49,220 --> 00:13:51,310 >> Vamos dar uma olhada em como você pode fazer isso em JavaScript. 246 00:13:51,310 --> 00:13:56,060 Temos diferentes arquivos, porque há algumas maneiras diferentes de fazer isso. 247 00:13:56,060 --> 00:13:58,950 Uma maneira é muito bonito uma tradução direta. 248 00:13:58,950 --> 00:14:02,180 Como as funções em C tipos de retorno, e JavaScript 249 00:14:02,180 --> 00:14:05,210 não sabe ou cuidados sobre que tipo você voltar, 250 00:14:05,210 --> 00:14:06,300 você não escreve um tipo. 251 00:14:06,300 --> 00:14:08,100 Em vez disso, você só precisa para escrever a função, 252 00:14:08,100 --> 00:14:11,180 e tudo é bastante da mesma forma como antes. 253 00:14:11,180 --> 00:14:14,630 >> Quando você tem uma variável, como em acrescentar, só precisamos de escrever x e y. 254 00:14:14,630 --> 00:14:16,060 Não precisamos dizer que x é um int. 255 00:14:16,060 --> 00:14:18,940 Nós não precisamos de dizer y é um int. 256 00:14:18,940 --> 00:14:21,030 Voltamos com a mesma sintaxe. 257 00:14:21,030 --> 00:14:24,230 Por alto, nós declará-la com funcionar em vez de vazio. 258 00:14:24,230 --> 00:14:26,110 Observe que se é nulo ou não-nula, 259 00:14:26,110 --> 00:14:28,380 ainda está tudo a mesma função. 260 00:14:28,380 --> 00:14:32,440 E nós simplesmente não colocar qualquer coisa entre parênteses, 261 00:14:32,440 --> 00:14:34,690 e ele se parece muito com o código C. 262 00:14:34,690 --> 00:14:37,460 E abaixo, podemos chamá-lo abaixo. 263 00:14:37,460 --> 00:14:42,730 >> Se olharmos para o exemplo 4b, notamos que eu mudei algumas coisas. 264 00:14:42,730 --> 00:14:45,340 A única coisa que eu mudei realmente, porém, é o fim. 265 00:14:45,340 --> 00:14:47,340 Temos o mesmo funções, mas agora eles estão 266 00:14:47,340 --> 00:14:52,200 declarou depois que eles são usados ​​em console.log e alto nas linhas 18, 19. 267 00:14:52,200 --> 00:14:54,740 Se você fez isso em C, fazer seria lançar um erro. 268 00:14:54,740 --> 00:14:56,070 Aqui, isso funciona muito bem. 269 00:14:56,070 --> 00:15:01,935 E eu posso mostrar isso para você por chamando Node no exemplo 4b. 270 00:15:01,935 --> 00:15:05,350 271 00:15:05,350 --> 00:15:10,130 >> Outra maneira de chamar funções é por funções de poupança como variáveis. 272 00:15:10,130 --> 00:15:13,790 Como eu disse, uma variável pode ter qualquer tipo. 273 00:15:13,790 --> 00:15:16,720 Um dos tipos uma variável pode ter é uma função. 274 00:15:16,720 --> 00:15:19,800 Então, se você olhar para exemplo 4c, o que eu mudei 275 00:15:19,800 --> 00:15:24,320 aqui é var adicionar em vez de função add. 276 00:15:24,320 --> 00:15:26,807 E agora é igual a adicionar uma função. 277 00:15:26,807 --> 00:15:28,140 Esta função aqui é anônimo. 278 00:15:28,140 --> 00:15:33,346 Não tem nome, por isso é apenas função e, em seguida, os parênteses. 279 00:15:33,346 --> 00:15:35,220 A sintaxe que depois não muda, mas você 280 00:15:35,220 --> 00:15:38,300 tem que ter em mente que você tem uma variável que você está 281 00:15:38,300 --> 00:15:42,940 armazenar a função em add, e um variável que você está armazenando em alta. 282 00:15:42,940 --> 00:15:47,620 >> Como adicionar e alta agora são variáveis e não funciona, algo muda. 283 00:15:47,620 --> 00:15:50,190 Este é um erro comum que eu vejo em um monte de JavaScripts das pessoas, 284 00:15:50,190 --> 00:15:52,410 e alguma coisa para manter em mente. 285 00:15:52,410 --> 00:15:54,365 Quando eu executo isso, vamos ver o que acontece. 286 00:15:54,365 --> 00:15:57,410 287 00:15:57,410 --> 00:15:58,230 Eu recebo um erro. 288 00:15:58,230 --> 00:16:01,000 É dizer indefinido neste momento. 289 00:16:01,000 --> 00:16:03,520 Então, ele está dizendo que não sabe o que é adicionar. 290 00:16:03,520 --> 00:16:06,010 >> Porque agora adicionar não é um função, adicionar é uma variável. 291 00:16:06,010 --> 00:16:10,100 E você não tenha realmente dado adicionar um valor ainda quando você usou. 292 00:16:10,100 --> 00:16:14,460 Isso nos leva a exemplo 4d, onde se você quiser usar variáveis ​​como funções, 293 00:16:14,460 --> 00:16:17,210 você só precisa ter certeza de que eles obter o valor antes de serem usados. 294 00:16:17,210 --> 00:16:20,200 295 00:16:20,200 --> 00:16:23,420 >> Vamos seguir em frente com o exemplo de cinco então. 296 00:16:23,420 --> 00:16:27,390 Aqui, falamos de estruturas em C. Em C, estruturas 297 00:16:27,390 --> 00:16:30,320 têm esta estrutura fixa a eles porque você tem que declará-los 298 00:16:30,320 --> 00:16:33,050 antes de usá-lo, e você diz que eu tenho um aluno, 299 00:16:33,050 --> 00:16:36,645 e cada aluno tem exatamente um nome, um ano, um gênero. 300 00:16:36,645 --> 00:16:37,770 Tem de ter todos eles. 301 00:16:37,770 --> 00:16:42,280 Ele não pode ter quaisquer outros valores, e eles têm que ser determinados tipos. 302 00:16:42,280 --> 00:16:47,540 >> Então, podemos inicializar o struct nesta sintaxe agradável 303 00:16:47,540 --> 00:16:49,470 porque ele sabe a ordem. 304 00:16:49,470 --> 00:16:51,460 Por isso, sabe que Roger é um nome. 305 00:16:51,460 --> 00:16:54,060 Ele sabe que 2016 é um ano e M é um género 306 00:16:54,060 --> 00:16:58,200 porque disse que este lista é um estudante struct. 307 00:16:58,200 --> 00:17:01,607 E então você pode imprimir lo, aceder s.name. 308 00:17:01,607 --> 00:17:03,690 Vamos ver como iríamos convertê-lo em JavaScript. 309 00:17:03,690 --> 00:17:06,400 310 00:17:06,400 --> 00:17:09,790 Observe que é agora é um variável, e não há nenhum tipo. 311 00:17:09,790 --> 00:17:10,920 É apenas uma var novamente. 312 00:17:10,920 --> 00:17:14,480 Porque não importa se o tipo de esta variável é um ponteiro, 313 00:17:14,480 --> 00:17:17,440 é uma estrutura, ou qualquer outra coisa. 314 00:17:17,440 --> 00:17:19,650 Temos uma sintaxe um pouco diferente. 315 00:17:19,650 --> 00:17:21,890 Esta sintaxe é a sintaxe objeto. 316 00:17:21,890 --> 00:17:24,400 >> Você já deve ter visto em JSON. 317 00:17:24,400 --> 00:17:27,780 JSON, na verdade, representa o JavaScript Object Notation. 318 00:17:27,780 --> 00:17:31,240 Isto é como você definir objetos em JavaScript. 319 00:17:31,240 --> 00:17:34,500 Nós temos uma chave, que é o valor, como o nome. 320 00:17:34,500 --> 00:17:37,680 E nós dar-lhe valores em o outro lado do cólon. 321 00:17:37,680 --> 00:17:41,850 E uma coisa a ter em mente é que você Não é necessário ter um nome e um ano 322 00:17:41,850 --> 00:17:42,980 e um género de um objeto. 323 00:17:42,980 --> 00:17:44,570 Um objeto pode ter nenhum valor. 324 00:17:44,570 --> 00:17:46,920 Ele pode ter como muitos como você gostaria. 325 00:17:46,920 --> 00:17:50,375 >> Podemos usar esses objetos em apenas o mesma forma que usaria um struct, s.name. 326 00:17:50,375 --> 00:17:53,810 327 00:17:53,810 --> 00:17:57,080 Nós podemos executá-lo muito rapidamente fazendo nó exemplo 5.c. 328 00:17:57,080 --> 00:18:00,320 329 00:18:00,320 --> 00:18:02,520 Nós não podemos realmente executar um arquivo C em Node. 330 00:18:02,520 --> 00:18:03,654 Ele não sabe o que é C. 331 00:18:03,654 --> 00:18:04,695 Ele só sabe JavaScript. 332 00:18:04,695 --> 00:18:09,865 Quando executamos os ex5.js, obtemos o valor, o que se espera. 333 00:18:09,865 --> 00:18:13,490 334 00:18:13,490 --> 00:18:15,980 >> Vamos seguir em frente com o exemplo de seis. 335 00:18:15,980 --> 00:18:18,930 Aqui eu só quero falar um pouco pouco mais sobre matrizes de JavaScript 336 00:18:18,930 --> 00:18:20,930 porque eles são um pouco diferente do que você é 337 00:18:20,930 --> 00:18:26,940 utilizado no C. Arrays são notados, não com os suportes, como em C, 338 00:18:26,940 --> 00:18:28,640 com as chaves, mas colchetes. 339 00:18:28,640 --> 00:18:32,150 Você pode ter uma matriz vazia, como arr na linha quatro. 340 00:18:32,150 --> 00:18:34,680 Você pode ter matrizes com vários valores. 341 00:18:34,680 --> 00:18:39,790 E você acessá-los exatamente da mesma maneira em C. 342 00:18:39,790 --> 00:18:42,990 >> -Se para a linha sete, tudo Parece bastante simples. 343 00:18:42,990 --> 00:18:45,390 Uma pequena diferença está aqui na linha 10. 344 00:18:45,390 --> 00:18:48,620 A maneira como você obter um comprimento de um matriz é apenas chamando .length. 345 00:18:48,620 --> 00:18:50,620 Uma matriz pode ser realmente tratado como um objeto, 346 00:18:50,620 --> 00:18:54,960 e esse objeto tem uma propriedade de comprimento que você chamar para obter o comprimento do mesmo. 347 00:18:54,960 --> 00:18:57,350 Observe que isso é diferente em C porque em C você 348 00:18:57,350 --> 00:19:01,600 tem que saber o comprimento do seu objeto antes do tempo. 349 00:19:01,600 --> 00:19:04,700 >> Portanto, outra coisa agradável sobre matrizes é que você pode ter diferentes tipos. 350 00:19:04,700 --> 00:19:07,470 Se você tem uma matriz em C, não são matrizes de um valor específico, 351 00:19:07,470 --> 00:19:11,900 um ponteiro struct ou flutua ou [inaudível]. 352 00:19:11,900 --> 00:19:13,700 Aqui, você pode ter valores diferentes. 353 00:19:13,700 --> 00:19:17,560 Eu tinha primeiro um número de ponto flutuante, em seguida, um booleano, em seguida, outro inteiro. 354 00:19:17,560 --> 00:19:19,670 E, na verdade, eles podem alterar os tipos também. 355 00:19:19,670 --> 00:19:21,220 Olhe para linha 16. 356 00:19:21,220 --> 00:19:26,760 Matriz de duas está mudando de um número, um número inteiro, a uma string. 357 00:19:26,760 --> 00:19:30,920 >> Outra coisa legal sobre matrizes é aqui na linha 19, que tem tamanho infinito. 358 00:19:30,920 --> 00:19:35,900 Você pode apenas dizer que eu quero o centésimo elemento a ser a string legítimo. 359 00:19:35,900 --> 00:19:38,510 E isso não parece fazer sentido, porque a matriz só 360 00:19:38,510 --> 00:19:41,080 tem espaço para três elementos, de modo que a extremidade deve ser dois. 361 00:19:41,080 --> 00:19:44,800 Mas quando você faz isso, vamos ver o que se torna matriz de três. 362 00:19:44,800 --> 00:19:47,460 Gostaríamos de executar este rapidamente com nó exemplo six.js. 363 00:19:47,460 --> 00:19:49,990 364 00:19:49,990 --> 00:19:52,180 Recebemos esta muito longo array, e o que acontece 365 00:19:52,180 --> 00:19:55,100 é que temos os primeiros elementos e, em seguida, um monte de espaços em branco 366 00:19:55,100 --> 00:19:56,580 até chegarmos a nossa string. 367 00:19:56,580 --> 00:19:58,580 JavaScript preenche o matriz como ele é necessário. 368 00:19:58,580 --> 00:20:01,790 369 00:20:01,790 --> 00:20:05,420 >> Vamos finalmente ir para o nosso último exemplo. 370 00:20:05,420 --> 00:20:08,180 Aqui temos uma lista de diferentes alunos. 371 00:20:08,180 --> 00:20:11,350 Quero falar um pouco pouco sobre alguns aspectos agradáveis 372 00:20:11,350 --> 00:20:14,240 de loops em JavaScript. 373 00:20:14,240 --> 00:20:17,500 Em C, para loops são tipo de limitação. 374 00:20:17,500 --> 00:20:21,490 Eles têm uma estrutura fixa, onde você ter uma variável, você tem uma condição, 375 00:20:21,490 --> 00:20:23,850 e, em seguida, você faz algo no final do ciclo. 376 00:20:23,850 --> 00:20:27,560 E é claro que isso funciona em JavaScript, como vimos nos exemplos anteriores. 377 00:20:27,560 --> 00:20:31,030 Mas também temos maneiras mais agradáveis de fazer isso em JavaScript. 378 00:20:31,030 --> 00:20:33,870 Isso é chamado de um loop foreach. 379 00:20:33,870 --> 00:20:36,580 >> Desculpe, vamos voltar a sete exemplo aqui. 380 00:20:36,580 --> 00:20:39,320 Podemos dizer também seção é uma lista. 381 00:20:39,320 --> 00:20:43,250 Então me dê todo i ou todos os índices nessa lista. 382 00:20:43,250 --> 00:20:46,255 Então, podemos obter o aluno por apenas chamando seção de i. 383 00:20:46,255 --> 00:20:50,690 Então, todo o código do estabelecimento i igual a zero e certificando-se de i 384 00:20:50,690 --> 00:20:54,420 é menor do que o comprimento ea somando-se ao i cada vez, isso é 385 00:20:54,420 --> 00:21:00,220 cuidando de você, em vez muito bem com esse loop foreach. 386 00:21:00,220 --> 00:21:02,830 >> Não só loops foreach trabalhar em listas ou matrizes, 387 00:21:02,830 --> 00:21:06,130 eles também trabalham em objetos, que também é bom. 388 00:21:06,130 --> 00:21:10,240 Você pode obter o nome de cada propriedade por apenas tomando 389 00:21:10,240 --> 00:21:15,030 um dicionário ou um objeto, como estudante, e depois é só dizer me dê cada chave. 390 00:21:15,030 --> 00:21:18,920 A chave seria estes propriedades, nome ou casa. 391 00:21:18,920 --> 00:21:22,870 Então, o que vai acontecer aqui é que nós imprimir primeiro o nome e, em seguida, 392 00:21:22,870 --> 00:21:24,920 a casa de cada aluno. 393 00:21:24,920 --> 00:21:29,170 >> Eu posso correr este em Node muito rapidamente para lhe mostrar. 394 00:21:29,170 --> 00:21:35,510 Ficamos em primeiro lugar o estilo C para o laço, onde obtemos cada objeto que está sendo impresso. 395 00:21:35,510 --> 00:21:38,910 E então temos o JavaScript estilo, onde você pode apenas 396 00:21:38,910 --> 00:21:41,510 imprimir cada chave e valorizar individualmente. 397 00:21:41,510 --> 00:21:45,560 398 00:21:45,560 --> 00:21:47,050 >> Tudo certo. 399 00:21:47,050 --> 00:21:52,850 Agora que nós cobrimos Node.js, eu acho estamos prontos para começar com o Meteor. 400 00:21:52,850 --> 00:21:56,070 Como eu disse, Meteor fez um grande trabalho de escrever alguns exemplos ready-made 401 00:21:56,070 --> 00:22:00,600 para você que você pode explorar por meio de Neste tutorial ou na pasta de seminário. 402 00:22:00,600 --> 00:22:03,750 Mas aqui eu quero iniciar mais a partir do zero. 403 00:22:03,750 --> 00:22:06,810 >> Vamos criar um simples de fazer aplicação. 404 00:22:06,810 --> 00:22:14,140 Este é o tipo da base do que o de faça uma aplicação que lhe mostrei anteriormente é. 405 00:22:14,140 --> 00:22:16,990 Neste tutorial, você vai ver que não há 406 00:22:16,990 --> 00:22:20,180 Um meteoro comando criar a criar um novo projeto Meteor. 407 00:22:20,180 --> 00:22:24,510 Você precisa chamar isso de forma para executar projetos de meteoros porque ele 408 00:22:24,510 --> 00:22:27,470 irá executar os comandos para criar o Meteor 409 00:22:27,470 --> 00:22:31,100 os arquivos necessários para o seu projeto. 410 00:22:31,100 --> 00:22:35,920 >> Se você entrar no terminal, o que pudermos ir para a pasta chamada primeira etapa. 411 00:22:35,920 --> 00:22:41,240 E o primeiro passo corresponderá o primeiro passo para o tutorial. 412 00:22:41,240 --> 00:22:44,020 Aviso existem pastas, passo um, dois passo, por todo o caminho até cinco. 413 00:22:44,020 --> 00:22:47,835 E cada um é correspondente a um passo neste tutorial. 414 00:22:47,835 --> 00:22:50,960 415 00:22:50,960 --> 00:22:52,780 Eu estou indo para abri-lo no meu editor de texto aqui 416 00:22:52,780 --> 00:22:56,280 para que possamos ver um pouco do que foi criado. 417 00:22:56,280 --> 00:22:58,530 Notamos que há quatro partes principais. 418 00:22:58,530 --> 00:23:01,170 Há um diretório Meteor, .meteor. 419 00:23:01,170 --> 00:23:03,180 E que você normalmente Não é necessário tocar. 420 00:23:03,180 --> 00:23:05,070 Meteor cuida de essa pasta, e isso só 421 00:23:05,070 --> 00:23:08,640 garante que o seu projeto irá funcionar corretamente. 422 00:23:08,640 --> 00:23:14,580 >> Temos também três arquivos, um arquivo HTML, um arquivo JavaScript, e um arquivo CSS. 423 00:23:14,580 --> 00:23:18,670 Vamos começar primeiro com o arquivo HTML. 424 00:23:18,670 --> 00:23:21,310 À primeira vista, isso parece como um documento HTML normal. 425 00:23:21,310 --> 00:23:23,490 Mas note que há algumas diferenças. 426 00:23:23,490 --> 00:23:26,520 Um, isto não é verdade um documento HTML completo. 427 00:23:26,520 --> 00:23:28,640 Estamos perdendo as tags HTML. 428 00:23:28,640 --> 00:23:29,700 Isto é normal. 429 00:23:29,700 --> 00:23:33,560 Em Meteor, você não está esperado para criar estas tags HTML. 430 00:23:33,560 --> 00:23:35,260 Isso é feito para você. 431 00:23:35,260 --> 00:23:38,380 Você quer begin-- se quero criar um site, 432 00:23:38,380 --> 00:23:40,430 você só precisa começar com a marca de cabeça, 433 00:23:40,430 --> 00:23:43,510 definir que, em seguida, definir a tag corpo. 434 00:23:43,510 --> 00:23:48,940 >> Mas se você observar neste Arquivo HTML, temos uma nova tag. 435 00:23:48,940 --> 00:23:50,350 Nós temos a tag template. 436 00:23:50,350 --> 00:23:52,050 Este não é o HTML normal. 437 00:23:52,050 --> 00:23:55,300 Esta é uma versão especial do HTML Meteor que torna disponível para você. 438 00:23:55,300 --> 00:23:57,660 É chamado de barras de espaço. 439 00:23:57,660 --> 00:24:00,980 Você pode definir modelos como pouco módulos, como o tipo de funções auxiliares, 440 00:24:00,980 --> 00:24:03,660 em sua C ou código JavaScript. 441 00:24:03,660 --> 00:24:06,020 Este modelo seria tem um nome chamado tarefa. 442 00:24:06,020 --> 00:24:10,520 E você pode ver aqui na linha 13 que você pode chamar esses modelos. 443 00:24:10,520 --> 00:24:14,380 E o que Meteor vai fazer é apenas preencher essas tarefas para você. 444 00:24:14,380 --> 00:24:17,540 445 00:24:17,540 --> 00:24:22,580 >> Outra coisa que você pode perceber é uma pouco diferente é esta cada função. 446 00:24:22,580 --> 00:24:26,130 Cada um vai ter a variável tarefas e tipo de passar por isso 447 00:24:26,130 --> 00:24:28,810 em que nós loop foreach viu no exemplo sete. 448 00:24:28,810 --> 00:24:34,200 Esta cada um pode levar um dicionário ou uma lista, um objeto ou uma lista, 449 00:24:34,200 --> 00:24:38,820 e ele só vai passar por tudo o valores como um loop foreach faria. 450 00:24:38,820 --> 00:24:44,110 Então, se temos um monte de tarefas, este vai chamar o modelo em cada tarefa. 451 00:24:44,110 --> 00:24:49,590 >> Vamos executar o projeto Meteor só para ver que isso acontece. 452 00:24:49,590 --> 00:24:53,260 Eu executar o projeto com Meteor apenas Meteor ou Meteor executado. 453 00:24:53,260 --> 00:24:56,690 E agora Meteor só precisa preparar rapidamente o projeto, 454 00:24:56,690 --> 00:25:03,320 iniciar o banco de dados como necessário, e em seguida, publicar o aplicativo localmente. 455 00:25:03,320 --> 00:25:07,200 Nós podemos ir para o nosso navegador agora. 456 00:25:07,200 --> 00:25:10,215 E nós vamos ver que nós tenho um aplicativo muito simples. 457 00:25:10,215 --> 00:25:22,190 458 00:25:22,190 --> 00:25:29,130 Então, o que se viu foi realmente mostrou-se o primeiro passo, o passo um arquivo. 459 00:25:29,130 --> 00:25:33,260 >> Vamos passar para a etapa dois só porque Eu acho que vai servir a mesma finalidade. 460 00:25:33,260 --> 00:25:36,500 Eu só vou mudar para o diretório etapa dois 461 00:25:36,500 --> 00:25:39,550 e executar Meteor novamente para que possamos ver o modelo que acabamos com quem trabalhou. 462 00:25:39,550 --> 00:25:43,560 463 00:25:43,560 --> 00:25:45,730 Sim, uma pergunta? 464 00:25:45,730 --> 00:25:49,724 >> AUDIÊNCIA: Se estamos recebendo permissão negado, é isso-- o que é isso 465 00:25:49,724 --> 00:25:50,390 chamado para isso? 466 00:25:50,390 --> 00:25:52,154 467 00:25:52,154 --> 00:25:54,070 ROGER ZURAWICKI: Se você está correndo Meteor prazo, 468 00:25:54,070 --> 00:25:57,280 e você tem permissão negada, alguns de seus arquivos 469 00:25:57,280 --> 00:25:59,070 pode não ter o conjunto de permissões direita. 470 00:25:59,070 --> 00:26:03,970 Então você tem que verificar onde as permissões estão desligados. 471 00:26:03,970 --> 00:26:06,030 Eles poderiam estar fora em seu projeto Meteor, 472 00:26:06,030 --> 00:26:08,550 ou eles poderiam estar fora no Meteor próprios arquivos. 473 00:26:08,550 --> 00:26:13,742 >> AUDIÊNCIA: Se eu baixei só agora a partir do seu GitHub, então o que devo fazer 474 00:26:13,742 --> 00:26:16,110 [Inaudível]? 475 00:26:16,110 --> 00:26:20,110 >> ROGER ZURAWICKI: Se você quiser para se certificar de que você pode acessá-lo, 476 00:26:20,110 --> 00:26:21,450 há um comando que você pode executar. 477 00:26:21,450 --> 00:26:26,590 Deixe-me rapidamente escrevê-lo para que outras pessoas possam vê-lo. 478 00:26:26,590 --> 00:26:30,670 Vou abrir uma nova aba aqui e ir para minha pasta de seminário. 479 00:26:30,670 --> 00:26:33,500 480 00:26:33,500 --> 00:26:36,490 Chmod é o comando para alterar as permissões, 481 00:26:36,490 --> 00:26:40,060 e você pode dizer r para fazê-lo recursivamente para cada arquivo. 482 00:26:40,060 --> 00:26:46,040 E permissões, você pode tentar 0755 para se certificar de que você tem acesso completo, 483 00:26:46,040 --> 00:26:47,820 e toda a gente pode ler. 484 00:26:47,820 --> 00:26:50,100 E se você só correr este comando, ele vai fazer 485 00:26:50,100 --> 00:26:55,800 Certifique-se as permissões estão em vá para o diretório inteiro. 486 00:26:55,800 --> 00:26:59,160 Correndo ls-l pode mostrar-lhe o permissões de forma mais detalhada. 487 00:26:59,160 --> 00:27:01,290 Isso parece OK. 488 00:27:01,290 --> 00:27:03,900 >> O que é mais importante é que você tem todos os três 489 00:27:03,900 --> 00:27:06,610 rwx para todos os arquivos o diretório seminário. 490 00:27:06,610 --> 00:27:09,415 491 00:27:09,415 --> 00:27:11,330 Será que isso resolve o problema? 492 00:27:11,330 --> 00:27:13,735 >> AUDIÊNCIA: Ele diz que falta operante [inaudível]. 493 00:27:13,735 --> 00:27:17,980 494 00:27:17,980 --> 00:27:18,740 [Inaudível] 495 00:27:18,740 --> 00:27:20,490 ROGER ZURAWICKI: Você tem que ter certeza que você 496 00:27:20,490 --> 00:27:23,022 têm um ponto no final de seu comando. 497 00:27:23,022 --> 00:27:23,938 AUDIÊNCIA: [inaudível]. 498 00:27:23,938 --> 00:27:36,395 499 00:27:36,395 --> 00:27:37,520 ROGER ZURAWICKI: Tudo bem. 500 00:27:37,520 --> 00:27:42,220 Vamos rapidamente voltar para o host local, o app que temos. 501 00:27:42,220 --> 00:27:46,640 E você vai ver que temos um algumas tarefas aqui, como esperado. 502 00:27:46,640 --> 00:27:49,330 503 00:27:49,330 --> 00:27:51,990 Temos um monte de CSS, que você não precisa se preocupar. 504 00:27:51,990 --> 00:27:53,740 O tutorial Meteor só dá isso para você 505 00:27:53,740 --> 00:27:58,010 para fazer a sua lista para fazer uma olhada pouco melhor do que o HTML simples. 506 00:27:58,010 --> 00:28:02,290 E nós temos o arquivo JavaScript, o que Eu vou entrar em mais detalhes um pouco mais tarde, 507 00:28:02,290 --> 00:28:04,272 mas ele só fornece essas tarefas. 508 00:28:04,272 --> 00:28:04,980 Esta é uma tarefa. 509 00:28:04,980 --> 00:28:05,740 Esta tarefa é dois. 510 00:28:05,740 --> 00:28:06,590 Esta tarefa é três. 511 00:28:06,590 --> 00:28:09,720 Então esta é a dados Meteor está ficando. 512 00:28:09,720 --> 00:28:15,590 >> Uma das coisas legais sobre Meteor é que mudanças podem acontecer automaticamente. 513 00:28:15,590 --> 00:28:18,990 Se eu queria mudar o nome da primeira tarefa, 514 00:28:18,990 --> 00:28:22,490 por isso, diria que este não é tarefa, e eu salvá-lo, 515 00:28:22,490 --> 00:28:26,370 então quando eu ir para a web browser, você pode atualizá-lo, 516 00:28:26,370 --> 00:28:30,861 e ele diz que automaticamente esta não é uma tarefa um. 517 00:28:30,861 --> 00:28:32,860 Você pode fazer a mesma coisa em qualquer um destes ficheiros. 518 00:28:32,860 --> 00:28:37,940 Faça uma mudança, em vez de fazer lista, eu vou ter o meu para fazer a lista. 519 00:28:37,940 --> 00:28:40,980 >> E uma coisa que você só notei, que eu não tinha sequer para refrescar. 520 00:28:40,980 --> 00:28:43,960 A idéia de refrescante é uma espécie de resolvido para você com Meteor. 521 00:28:43,960 --> 00:28:48,970 Sempre que detecta as alterações de arquivos, ele vai carregar as mudanças para você. 522 00:28:48,970 --> 00:28:53,110 Isso funciona em todos os arquivos, se é HTML, CSS, JavaScript ou. 523 00:28:53,110 --> 00:28:57,990 Para mostrar a você o que esta app olharia como sem CSS, posso remover tudo. 524 00:28:57,990 --> 00:29:04,720 E quando ele é recarregado, agora você tem uma não tão boa aparência para fazer a lista. 525 00:29:04,720 --> 00:29:06,370 Vamos colocar esse conteúdo de volta. 526 00:29:06,370 --> 00:29:11,343 E certamente o suficiente, refresca, e nossa CSS está de volta. 527 00:29:11,343 --> 00:29:11,843 Ótimo. 528 00:29:11,843 --> 00:29:15,700 529 00:29:15,700 --> 00:29:20,010 >> Agora podemos seguir em frente com o tutorial. 530 00:29:20,010 --> 00:29:23,360 Vamos falar sobre a segunda etapa, templates. 531 00:29:23,360 --> 00:29:27,140 Isto é o que acabamos de ver com as diferentes tarefas. 532 00:29:27,140 --> 00:29:31,550 Meteor irá explicar-lhe o que modelos e como essa lógica funciona. 533 00:29:31,550 --> 00:29:34,760 Mas vamos olhar o código para ver se podemos fazer sentido fora dele. 534 00:29:34,760 --> 00:29:38,030 535 00:29:38,030 --> 00:29:41,460 >> Em aplicações muito simples, parecido com o que temos no simples 536 00:29:41,460 --> 00:29:44,550 fazer, passo um, passo dois, passo três, quatro etapas, etapa cinco, 537 00:29:44,550 --> 00:29:45,700 não temos quaisquer pastas. 538 00:29:45,700 --> 00:29:47,533 Não temos o servidor pasta que eu mencionei. 539 00:29:47,533 --> 00:29:50,510 Não temos o cliente pasta que foi mencionado. 540 00:29:50,510 --> 00:29:52,290 Então Meteor será executado todos os arquivos. 541 00:29:52,290 --> 00:29:55,210 Ele vai executá-lo tanto no cliente, tanto no servidor. 542 00:29:55,210 --> 00:29:58,840 >> E se você quiser partes de seu JavaScript código para ser executado apenas no cliente, 543 00:29:58,840 --> 00:30:02,350 eles precisam ter certeza de que você tem um se instrução, tipo de como o que 544 00:30:02,350 --> 00:30:04,890 temos em nosso arquivo JavaScript aqui. 545 00:30:04,890 --> 00:30:08,010 Então Meteor, somente se é o cliente, então eu 546 00:30:08,010 --> 00:30:12,355 quer definir um modelo auxiliar chamado tarefas. 547 00:30:12,355 --> 00:30:15,050 548 00:30:15,050 --> 00:30:19,260 O que esse código realmente faz é que diz que não há 549 00:30:19,260 --> 00:30:21,800 um modelo de objeto chamado Meteor que fornece. 550 00:30:21,800 --> 00:30:23,270 E nós vamos adicionar um ajudante. 551 00:30:23,270 --> 00:30:27,680 Helpers são essas tarefas, essas coisas como as tarefas. 552 00:30:27,680 --> 00:30:33,890 >> Você vai ver que, se voltar para o Arquivo HTML, chamamos cada nas tarefas. 553 00:30:33,890 --> 00:30:35,750 As tarefas não é definido no HTML. 554 00:30:35,750 --> 00:30:37,770 É definido no JavaScript. 555 00:30:37,770 --> 00:30:42,610 E Meteor precisa saber quais as tarefas que é quando vamos para o JavaScript aqui. 556 00:30:42,610 --> 00:30:45,550 Tarefas é este auxiliar. 557 00:30:45,550 --> 00:30:49,830 Helper, você pode pensar -lo como uma variável de modelo. 558 00:30:49,830 --> 00:30:51,000 E o que fazer tarefas? 559 00:30:51,000 --> 00:30:53,580 Bem, ele retorna a lista de valores. 560 00:30:53,580 --> 00:30:56,750 Porque é uma lista, podemos chamar cada nele. 561 00:30:56,750 --> 00:30:58,590 Então é por isso que chamamos de cada um em tarefas. 562 00:30:58,590 --> 00:30:59,730 E agora temos tarefa. 563 00:30:59,730 --> 00:31:02,850 564 00:31:02,850 --> 00:31:03,990 >> O que fazer tarefa? 565 00:31:03,990 --> 00:31:07,740 Bem, ele tem essa seta aqui depois de as chaves. 566 00:31:07,740 --> 00:31:09,130 Isso significa que é um modelo de tarefa. 567 00:31:09,130 --> 00:31:11,100 Não é um ajudante, como o que acabamos de ver. 568 00:31:11,100 --> 00:31:12,872 É um modelo que tenha definido. 569 00:31:12,872 --> 00:31:14,080 E onde é que nós definimos isso? 570 00:31:14,080 --> 00:31:16,950 Nós definimos abaixo aqui. 571 00:31:16,950 --> 00:31:21,160 >> Todo esse modelo faz é tornar um item da lista, e ele chama de texto. 572 00:31:21,160 --> 00:31:24,160 Agora, o texto parece ser um ajudante, mas eu vou mostrar-lhe 573 00:31:24,160 --> 00:31:26,610 que este é, na verdade, ainda um membro de dados de tarefas. 574 00:31:26,610 --> 00:31:29,230 575 00:31:29,230 --> 00:31:33,670 Quando você chamar cada um, ele vai para a estrutura de dados um pouco. 576 00:31:33,670 --> 00:31:39,130 Como o loop foreach, agora só olha no primeiro elemento em nosso objecto. 577 00:31:39,130 --> 00:31:41,850 Vemos que o texto é definido aqui em nosso objeto. 578 00:31:41,850 --> 00:31:45,350 Então Meteor é inteligente para saber que nós estamos falando sobre este texto, 579 00:31:45,350 --> 00:31:47,630 não o ajudante chamado texto. 580 00:31:47,630 --> 00:31:52,120 Ela só fica o valor deste texto aqui e exibe como HTML, 581 00:31:52,120 --> 00:31:55,475 e é assim que os dados vão desde o JavaScript para o HTML. 582 00:31:55,475 --> 00:32:03,320 583 00:32:03,320 --> 00:32:07,030 >> Movendo-se no entanto, neste exemplo nós codificado esses valores. 584 00:32:07,030 --> 00:32:10,440 Meteor faz dois realmente coisas boas para nós. 585 00:32:10,440 --> 00:32:15,050 Além da atualização ao vivo que nós mostrou, também gere a nossa base de dados. 586 00:32:15,050 --> 00:32:18,750 Se você tivesse que trabalhar com PHP, você tinha que configurar phpMyAdmin. 587 00:32:18,750 --> 00:32:21,320 Você tinha que se certificar que seu mesas estavam todas em cheque. 588 00:32:21,320 --> 00:32:24,760 Você tinha que fazer um monte de trabalho a fazer que seus dados foi formatado corretamente, 589 00:32:24,760 --> 00:32:27,880 e PHP poderia se comunicar com ele. 590 00:32:27,880 --> 00:32:30,170 >> Agora, Meteor usa um novo paradigma. 591 00:32:30,170 --> 00:32:32,310 Esta é uma forma mais moderna da manipulação de um banco de dados. 592 00:32:32,310 --> 00:32:34,580 É uma tecnologia chamada MongoDB. 593 00:32:34,580 --> 00:32:38,740 Assim como em JavaScript, vimos que Não importava o que tipos de dados continha. 594 00:32:38,740 --> 00:32:39,640 Tudo era uma var. 595 00:32:39,640 --> 00:32:40,570 Não foi um charstar. 596 00:32:40,570 --> 00:32:40,930 Não foi um int. 597 00:32:40,930 --> 00:32:41,970 Não foi um struct. 598 00:32:41,970 --> 00:32:44,210 Foi apenas var isso, var isso. 599 00:32:44,210 --> 00:32:46,320 >> MongoDB funciona espécie da mesma maneira. 600 00:32:46,320 --> 00:32:48,160 Você não tem que definir suas tabelas. 601 00:32:48,160 --> 00:32:50,860 Você não tem que dizer uma mesa tem um nome, que tem um int. 602 00:32:50,860 --> 00:32:54,710 Ele tem, eu não sei, um dólar, o que é um decimal. 603 00:32:54,710 --> 00:32:58,360 É apenas estes objetos JavaScript, todas essas vars, essencialmente. 604 00:32:58,360 --> 00:33:02,780 E isso é realmente um poderoso forma de protótipo seu app. 605 00:33:02,780 --> 00:33:06,190 E é por isso Meteor aproveita isso. 606 00:33:06,190 --> 00:33:11,080 >> Se formos para a etapa três, vamos ver o que mudou. 607 00:33:11,080 --> 00:33:15,480 Se olharmos para o HTML Todos, não muito. 608 00:33:15,480 --> 00:33:17,170 CSS não mudou em nada. 609 00:33:17,170 --> 00:33:22,420 Mas a pequena mudança que vemos em HTML é que já mudou a forma como as tarefas está definido. 610 00:33:22,420 --> 00:33:23,800 Tarefas agora é uma função. 611 00:33:23,800 --> 00:33:25,800 Isso significa que todo tempo queremos chegar tarefas, 612 00:33:25,800 --> 00:33:27,480 nós estamos indo para executar esta função. 613 00:33:27,480 --> 00:33:29,230 Ela não retorna a função como um valor. 614 00:33:29,230 --> 00:33:33,710 >> Meteor é inteligente para realmente executar o função para ver o que se obtêm. 615 00:33:33,710 --> 00:33:36,650 E ele retorna essa coisa chamada tarefas. 616 00:33:36,650 --> 00:33:40,650 Temos definido tarefas na linha um, e é uma coleção Mongo. 617 00:33:40,650 --> 00:33:43,170 Mongo está se referindo a a base de dados usa Meteor, 618 00:33:43,170 --> 00:33:48,420 e este novo significa apenas vamos fazer uma nova coleção, chamá-lo de tarefas. 619 00:33:48,420 --> 00:33:53,540 Em MySQL, isso seria equivalente a olhando para as tarefas de mesa chamado. 620 00:33:53,540 --> 00:33:56,350 Mongo tem coleções, não tabelas. 621 00:33:56,350 --> 00:34:00,100 Então, isso só olha para as tarefas. 622 00:34:00,100 --> 00:34:04,820 >> Agora, modelo em nosso auxiliar no molde, tudo 623 00:34:04,820 --> 00:34:08,380 que temos que fazer para obter todas as tarefas é essa função, encontrar 624 00:34:08,380 --> 00:34:11,710 e esta chave vazio. 625 00:34:11,710 --> 00:34:14,150 Este é mais especial para sintaxe Mongo. 626 00:34:14,150 --> 00:34:16,159 Há uma abundância de documentação on-line para saber como 627 00:34:16,159 --> 00:34:19,360 você pode fazer eficiente e realmente útil Mongo consulta. 628 00:34:19,360 --> 00:34:25,560 Mas algo como isso é bom o suficiente para apenas encontrar todos os dados. 629 00:34:25,560 --> 00:34:30,100 >> Agora, uma das questões que você pode ver é que nós nunca realmente adicionar dados. 630 00:34:30,100 --> 00:34:35,020 Então o que acontece quando nós realmente executar o passo três? 631 00:34:35,020 --> 00:34:37,550 Vamos rapidamente entrar em o terceiro passo e correr Meteor. 632 00:34:37,550 --> 00:34:42,870 633 00:34:42,870 --> 00:34:45,650 Repare que eu tinha outra Meteor projeto em execução em outro lugar, 634 00:34:45,650 --> 00:34:49,110 assim Meteor não gosto disso. 635 00:34:49,110 --> 00:34:52,810 Eu só vou fechar rapidamente para o outro Meteor com controle C, 636 00:34:52,810 --> 00:34:55,780 ir para o passo três, e executar Meteor novamente. 637 00:34:55,780 --> 00:35:01,070 638 00:35:01,070 --> 00:35:03,180 Observe que está começando MongoDB porque MongoDB 639 00:35:03,180 --> 00:35:06,370 é uma parte de cada projeto Meteor. 640 00:35:06,370 --> 00:35:09,190 >> Então, ele diz que a minha candidatura tem erros. 641 00:35:09,190 --> 00:35:10,590 Isso é um bom recurso Meteor tem. 642 00:35:10,590 --> 00:35:13,700 Ele garante que o seu HTML é bem validado. 643 00:35:13,700 --> 00:35:17,710 Vamos examinar rapidamente por que isso pode ser. 644 00:35:17,710 --> 00:35:26,110 Parece que eu tenho acidentalmente copiou o código HTML errado. 645 00:35:26,110 --> 00:35:30,610 Se eu salvá-lo agora, Meteor reiniciado automaticamente o servidor, 646 00:35:30,610 --> 00:35:34,650 e agora o aplicativo está sendo executado conforme o esperado. 647 00:35:34,650 --> 00:35:39,220 Observe para corrigir isso, você pode simplesmente executar o mesmo arquivo HTML a partir do passo dois, 648 00:35:39,220 --> 00:35:40,380 copiá-lo para a etapa três. 649 00:35:40,380 --> 00:35:43,290 650 00:35:43,290 --> 00:35:45,917 >> Nós podemos voltar ao nosso host local. 651 00:35:45,917 --> 00:35:47,500 E agora vemos que temos o nosso para fazer a lista. 652 00:35:47,500 --> 00:35:50,070 Ótimo, mas é vazio. 653 00:35:50,070 --> 00:35:54,210 Nós realmente não têm qualquer tarefas na nossa base de dados Mongo. 654 00:35:54,210 --> 00:35:57,930 Então vamos falar sobre um algumas maneiras que podemos fazer isso. 655 00:35:57,930 --> 00:36:03,240 Se voltar para o terminal, que pode fechá-lo e executá-Meteor Mongo. 656 00:36:03,240 --> 00:36:05,320 >> Se você estiver familiarizado com a forma como funciona Meteor, 657 00:36:05,320 --> 00:36:14,100 isso realmente lhe dá acesso para o MongoDB completo para Meteor. 658 00:36:14,100 --> 00:36:17,570 Observe que você tem que estar em execução Meteoro primeiro para que isso funcione. 659 00:36:17,570 --> 00:36:23,840 Então, se eu executar este em uma nova aba, I pode voltar para o mesmo diretório. 660 00:36:23,840 --> 00:36:29,040 661 00:36:29,040 --> 00:36:32,570 E agora Meteor funciona muito bem. 662 00:36:32,570 --> 00:36:33,600 Este é um prompt. 663 00:36:33,600 --> 00:36:36,350 664 00:36:36,350 --> 00:36:38,790 Deixe-me fazer-lhe um pouco maior para que possamos ver. 665 00:36:38,790 --> 00:36:41,550 Isso parece um pouco diferente do que o que você pode ser usado para você 666 00:36:41,550 --> 00:36:42,869 realmente não precisa usar Mongo. 667 00:36:42,869 --> 00:36:45,410 Toda a ponto de me aqui é de modo que você pode usar JavaScript. 668 00:36:45,410 --> 00:36:48,250 Mas se você estiver curioso, API Mongo não faz 669 00:36:48,250 --> 00:36:50,730 usar SQL, o Structured Query Language. 670 00:36:50,730 --> 00:36:55,570 Ele usa sua própria linguagem que parece muito com JavaScript. 671 00:36:55,570 --> 00:37:00,520 Muito rapidamente, podemos encontrar a tabela através db.tasks. 672 00:37:00,520 --> 00:37:08,940 E ele está me dizendo Acontece que, se corremos encontrar, 673 00:37:08,940 --> 00:37:13,450 tipo de semelhante ao que tivemos com Meteor, podemos carregar todos os elementos. 674 00:37:13,450 --> 00:37:17,330 O problema é que nós não realmente tem nenhum tarefas definidas. 675 00:37:17,330 --> 00:37:20,600 Por isso, não pode obtê-los. 676 00:37:20,600 --> 00:37:22,130 >> Podemos inserir, no entanto. 677 00:37:22,130 --> 00:37:25,170 Assim, podemos executar insert com a inserção de comandos. 678 00:37:25,170 --> 00:37:29,140 E nós apenas dar-lhe um objeto, e nós apenas 679 00:37:29,140 --> 00:37:31,840 certifique-se o formato é o que esperamos. 680 00:37:31,840 --> 00:37:35,030 Se olhamos para a segunda etapa, vimos que cada tarefa 681 00:37:35,030 --> 00:37:39,590 Era um objecto com um texto como a chave e qualquer que seja 682 00:37:39,590 --> 00:37:41,640 a sua tarefa era como uma variável. 683 00:37:41,640 --> 00:37:44,680 Assim, podemos fazer alguma coisa aqui. 684 00:37:44,680 --> 00:37:50,160 >> Podemos ter que inserir uma tarefa chamado Venho de Mongo. 685 00:37:50,160 --> 00:37:52,570 E nós, pressione Enter, e ele é executado. 686 00:37:52,570 --> 00:37:56,900 Nós podemos correr encontrar novamente, e nós ver que não é um objeto aqui. 687 00:37:56,900 --> 00:38:01,810 Mongo atribui a ele um ID, que você realmente não precisa se preocupar. 688 00:38:01,810 --> 00:38:06,690 O que é importante para você é a dados você colocar, são os dados que você sair. 689 00:38:06,690 --> 00:38:10,500 >> Vamos voltar ao nosso site, e hey, a nossa tarefa carregado. 690 00:38:10,500 --> 00:38:13,987 E você pode ver que porque Meteor é muito inteligente 691 00:38:13,987 --> 00:38:16,570 e sempre atualizada para você, eu não tem que tocar a página. 692 00:38:16,570 --> 00:38:19,160 É carregado automaticamente. 693 00:38:19,160 --> 00:38:23,520 >> Vamos executar algum código em JavaScript embora para fazer isso. 694 00:38:23,520 --> 00:38:26,120 Como temos Nó na parte de trás terminar de executar fora JavaScript, 695 00:38:26,120 --> 00:38:29,280 que também pode executar JavaScript diretamente em nossos navegadores. 696 00:38:29,280 --> 00:38:31,970 Você pode fazer isso por um recurso chamado Inspect Element. 697 00:38:31,970 --> 00:38:34,210 Se eu botão direito sobre um seção da página, 698 00:38:34,210 --> 00:38:36,730 há uma opção chamado Inspect Element. 699 00:38:36,730 --> 00:38:38,840 Se você estiver executando um navegador como o Safari, você 700 00:38:38,840 --> 00:38:45,430 talvez seja necessário ativar o seu desenvolvedor ferramentas antes de chegar a esse recurso. 701 00:38:45,430 --> 00:38:46,930 >> O que nos interessa é o console. 702 00:38:46,930 --> 00:38:48,930 Então, vamos apenas ir ao consola na parte inferior. 703 00:38:48,930 --> 00:38:52,110 704 00:38:52,110 --> 00:38:55,970 Agora podemos executar qualquer JavaScript aqui, como o JavaScript 705 00:38:55,970 --> 00:38:58,860 arquivos eu mostrei no exemplo js. 706 00:38:58,860 --> 00:39:02,040 Mas agora vamos olhar para as tarefas. 707 00:39:02,040 --> 00:39:04,955 Nós podemos correr o nosso comando. 708 00:39:04,955 --> 00:39:07,830 E espero que eu vou ser capaz de fazer -lo um pouco maior para que todos possamos ver. 709 00:39:07,830 --> 00:39:14,390 710 00:39:14,390 --> 00:39:18,450 >> Se corrermos tasks.find, e você ver que este é exatamente o mesmo código 711 00:39:18,450 --> 00:39:24,840 que as utilizações arquivo JavaScript na etapa três, este task.find. 712 00:39:24,840 --> 00:39:29,100 Podemos executar a mesma coisa, e agora temos algumas coisas estranhas. 713 00:39:29,100 --> 00:39:31,050 Como é que vamos realmente obter os dados? 714 00:39:31,050 --> 00:39:34,860 Bem, nós temos que executar este comando chamado buscar. 715 00:39:34,860 --> 00:39:37,150 >> Isto é muito útil para depuração. 716 00:39:37,150 --> 00:39:41,000 O que você chegar aqui é um cursor, e isto é 717 00:39:41,000 --> 00:39:44,890 uma boa maneira Meteor tem Buscando dados otimizada. 718 00:39:44,890 --> 00:39:48,270 Este cursor tem todas as características para atualização em tempo real e atualizar a página 719 00:39:48,270 --> 00:39:49,650 quando algo mudou. 720 00:39:49,650 --> 00:39:51,280 Mas isso não vai nos pegar os dados. 721 00:39:51,280 --> 00:39:52,720 Podemos obter os dados através buscar. 722 00:39:52,720 --> 00:39:56,880 E você vê que temos um objeto, e é como o que tínhamos em Mongo, 723 00:39:56,880 --> 00:40:00,040 com um ID e o texto que colocamos no. 724 00:40:00,040 --> 00:40:04,200 >> Então, como vamos inserir um item em Meteor? 725 00:40:04,200 --> 00:40:07,250 Bem, nós apenas temos tarefas. 726 00:40:07,250 --> 00:40:09,990 E então nós podemos executar o mesmo comando de inserção, 727 00:40:09,990 --> 00:40:17,520 dando um dicionário ou um objeto com o mesmo formato, texto 728 00:40:17,520 --> 00:40:22,340 e, em seguida, eu venho do console. 729 00:40:22,340 --> 00:40:27,240 Dê uma olhada de cima, porque quando eu fazer isso, ele mostra-se no site 730 00:40:27,240 --> 00:40:29,660 automaticamente. 731 00:40:29,660 --> 00:40:33,291 >> Observe que você pode colocar qualquer coisa você quer nestes itens. 732 00:40:33,291 --> 00:40:35,040 Ele não tem de tem uma estrutura fixa. 733 00:40:35,040 --> 00:40:39,790 Eu poderia ter um igual ao número três e b igual a false. 734 00:40:39,790 --> 00:40:41,600 E tudo funciona. 735 00:40:41,600 --> 00:40:46,000 Posso até optar por não incluir um texto em tudo. 736 00:40:46,000 --> 00:40:48,320 Isso só não é recomendado embora porque então Meteor 737 00:40:48,320 --> 00:40:50,920 não vai saber o que mostrar. 738 00:40:50,920 --> 00:40:53,110 Mas, em cada caso, nós obter um ID, e isso é 739 00:40:53,110 --> 00:40:54,785 o ID do objeto que você pode usar. 740 00:40:54,785 --> 00:41:01,120 741 00:41:01,120 --> 00:41:03,280 >> À medida que continuamos com etapa quatro e passo cinco, 742 00:41:03,280 --> 00:41:06,870 o tutorial irá mostrar-lhe maneiras que você pode criar elementos de interface do usuário usando 743 00:41:06,870 --> 00:41:13,130 o HTML que você sabe criar diferentes tarefas. 744 00:41:13,130 --> 00:41:15,440 Vamos olhar para a etapa quatro muito rapidamente. 745 00:41:15,440 --> 00:41:18,290 Vamos ver o que nós adicionamos uma seção sobre os eventos. 746 00:41:18,290 --> 00:41:20,874 Os modelos podem ter ajudantes, que nos Obter dados. 747 00:41:20,874 --> 00:41:22,040 Mas também pode ligar para eventos. 748 00:41:22,040 --> 00:41:25,300 E é aí que o material torna-se útil, porque os eventos 749 00:41:25,300 --> 00:41:28,590 são o que acontece quando você clica coisas diferentes em seu site. 750 00:41:28,590 --> 00:41:33,790 >> Aqui, o nosso código está dizendo -nos para adicionar este evento. 751 00:41:33,790 --> 00:41:38,860 Adicioná-lo quando você enviou algo com a classe nova tarefa. 752 00:41:38,860 --> 00:41:41,910 O que você tem aqui é um seletor CSS. 753 00:41:41,910 --> 00:41:45,870 Então, isso só olha para um HTML elemento que tem a classe nova tarefa. 754 00:41:45,870 --> 00:41:47,940 E olha para o evento, como enviar. 755 00:41:47,940 --> 00:41:51,050 Outros eventos incluem clique, pairo, duplo clique, 756 00:41:51,050 --> 00:41:54,450 semelhante ao que você entrar em HTML normal. 757 00:41:54,450 --> 00:41:56,770 >> O que você dá-lo aqui agora é uma função. 758 00:41:56,770 --> 00:42:01,210 E você pode ter o seu código nessa função. 759 00:42:01,210 --> 00:42:06,360 Esta função é o que acaba ficando chamado quando você enviar esta nova tarefa. 760 00:42:06,360 --> 00:42:12,170 Vamos olhar para o HTML apenas para que entender o que esta nova tarefa é. 761 00:42:12,170 --> 00:42:15,570 Nós adicionamos um formulário aqui com a classe nova tarefa. 762 00:42:15,570 --> 00:42:19,880 E que tem uma entrada que leva o texto. 763 00:42:19,880 --> 00:42:22,605 E este é o lugar onde nós irá adicionar nossas novas tarefas. 764 00:42:22,605 --> 00:42:25,520 765 00:42:25,520 --> 00:42:29,780 >> Vamos correr a etapa quatro no site para ver o que parece. 766 00:42:29,780 --> 00:42:32,710 Podemos sair pela primeira vez do MongoDB tivemos 767 00:42:32,710 --> 00:42:35,300 do nosso anterior exemplo com controle C. 768 00:42:35,300 --> 00:42:37,690 E vamos transformá-lo em a etapa quatro diretório. 769 00:42:37,690 --> 00:42:41,000 770 00:42:41,000 --> 00:42:42,920 Nós correremos Meteor novamente para iniciar o servidor. 771 00:42:42,920 --> 00:42:46,850 772 00:42:46,850 --> 00:42:50,510 E, infelizmente, tive Meteor sendo executado em outro terminal. 773 00:42:50,510 --> 00:42:53,080 Então, eu estou indo só para certifique-se esta fechada. 774 00:42:53,080 --> 00:43:01,805 Vamos sair desta e de mudança a quarta parte, a etapa quatro. 775 00:43:01,805 --> 00:43:02,305 OK. 776 00:43:02,305 --> 00:43:11,220 777 00:43:11,220 --> 00:43:13,250 >> Agora o nosso código Meteor está em execução. 778 00:43:13,250 --> 00:43:19,480 E você pode ver que ele atualizado, sem nós nem mesmo ter que atualizar a página. 779 00:43:19,480 --> 00:43:24,410 O que mudou aqui é agora que não temos qualquer tarefa, 780 00:43:24,410 --> 00:43:29,530 mas temos um formulário aqui, este caixa de texto, para adicionar as nossas novas tarefas. 781 00:43:29,530 --> 00:43:31,550 E nós podemos digitar a nossa tarefa aqui. 782 00:43:31,550 --> 00:43:34,564 Eu venho da página HTML. 783 00:43:34,564 --> 00:43:36,105 Ao pressionar Enter, ele foi submetido. 784 00:43:36,105 --> 00:43:39,180 785 00:43:39,180 --> 00:43:44,540 >> Podemos ver o que aconteceu como definidos pelo código JavaScript. 786 00:43:44,540 --> 00:43:49,930 O que esta função fez foi tomar o texto de forma, 787 00:43:49,930 --> 00:43:53,680 e, em seguida, chamado apenas de tasks.insert, como fizemos no console. 788 00:43:53,680 --> 00:43:56,410 Eles também optou por adicionar uma data createdAt. 789 00:43:56,410 --> 00:43:59,840 Isto é como se fosse especifique o tempo atual. 790 00:43:59,840 --> 00:44:03,220 Depois disso, ele limpa a forma, fazendo Certifique-se o valor é uma string vazia. 791 00:44:03,220 --> 00:44:06,550 >> E então ele chama retornar false para certificar-se de nada mais acontece. 792 00:44:06,550 --> 00:44:10,350 Quando você retornar de uma falsa evento de formulário, que interrompe a execução. 793 00:44:10,350 --> 00:44:14,520 Digamos que um formulário tem uma ação, como submeter-se a uma página PHP. 794 00:44:14,520 --> 00:44:16,980 Se você não tivesse retornado falsa, você retornar verdadeiro. 795 00:44:16,980 --> 00:44:18,500 Seria acabar fazendo esse pedido. 796 00:44:18,500 --> 00:44:20,590 Intercepta falsa, e pára-lo ali mesmo. 797 00:44:20,590 --> 00:44:23,510 798 00:44:23,510 --> 00:44:28,610 >> Então isso foi uma pequena demonstração sobre Meteor como funciona, e nós temos 799 00:44:28,610 --> 00:44:30,980 vindo a seguir o tutorial por um tempo. 800 00:44:30,980 --> 00:44:33,560 E você pode sentir por favor livre para continuar fazendo isso. 801 00:44:33,560 --> 00:44:37,760 Há uma abundância de recursos, e o tutorial é realmente apenas 802 00:44:37,760 --> 00:44:40,400 muito bom a explicar o que está acontecendo. 803 00:44:40,400 --> 00:44:44,362 Eu quero te mostrar agora, em os poucos minutos que nos restam, 804 00:44:44,362 --> 00:44:46,320 o que são alguns dos características mais frias do Meteor, 805 00:44:46,320 --> 00:44:48,772 e quais são alguns dos pacotes mais úteis. 806 00:44:48,772 --> 00:44:51,730 Uma das grandes coisas sobre Meteor é que você tem um sistema de pacotes. 807 00:44:51,730 --> 00:44:55,620 Você pode facilmente incorporar código que muitos milhares de desenvolvedores 808 00:44:55,620 --> 00:44:58,840 ter escrito em todo o mundo em seu projeto Meteor. 809 00:44:58,840 --> 00:45:02,410 Um exemplo disso é o que você pode fazer na etapa nove do tutorial, onde 810 00:45:02,410 --> 00:45:07,435 você está tentando adicionar contas ao seu projeto Meteor. 811 00:45:07,435 --> 00:45:10,010 812 00:45:10,010 --> 00:45:13,690 Se temos um PHP CS50 projeto, teríamos 813 00:45:13,690 --> 00:45:17,810 a contar com o quadro ou o nosso próprio código para fazer 814 00:45:17,810 --> 00:45:20,820 certeza que lidar de forma segura senhas e nomes de usuários 815 00:45:20,820 --> 00:45:23,120 e armazenar a base de dados e tudo isso. 816 00:45:23,120 --> 00:45:25,670 >> Acontece Meteor tem algum pacotes para fazer isso por você, 817 00:45:25,670 --> 00:45:29,160 e fazê-lo com muita facilidade. 818 00:45:29,160 --> 00:45:31,950 O que podemos fazer é adicionar alguns pacotes. 819 00:45:31,950 --> 00:45:37,450 Então, vamos fazer isso direito agora em nosso console. 820 00:45:37,450 --> 00:45:42,460 Vou sair do projeto e agora entrar em simples Todos. 821 00:45:42,460 --> 00:45:47,450 822 00:45:47,450 --> 00:45:50,050 Agora, simples-Todos é o projeto que você 823 00:45:50,050 --> 00:45:53,500 terá depois de ter sido feito com o passo 11 ou passo 12, 824 00:45:53,500 --> 00:45:55,250 no final deste tutorial. 825 00:45:55,250 --> 00:45:58,642 E vamos rapidamente olhar para ele para ver quais são os diferentes recursos que temos. 826 00:45:58,642 --> 00:46:01,610 Vamos apenas ter certeza que está sendo executado. 827 00:46:01,610 --> 00:46:04,400 Às vezes é preciso um tempo para refrescar, mas aqui está. 828 00:46:04,400 --> 00:46:09,710 >> Nós temos a nossa opção para ocultar completar tarefas, e nós podemos entrar. 829 00:46:09,710 --> 00:46:11,770 E isso foi feito com o pacote Meteor. 830 00:46:11,770 --> 00:46:12,270 É ótimo. 831 00:46:12,270 --> 00:46:14,910 Temos agora um username e sinal de senha no. 832 00:46:14,910 --> 00:46:19,170 Mas o que se queria acrescentar um outro tipo de mecanismo de login? 833 00:46:19,170 --> 00:46:22,560 Digamos que eu queria fazer logon com a minha conta Meteor. 834 00:46:22,560 --> 00:46:27,270 Eu vou correr meteoro add, e este é a sintaxe para adicionar pacotes. 835 00:46:27,270 --> 00:46:32,160 Posso dizer contas e accounts.meteor. 836 00:46:32,160 --> 00:46:35,720 Vai encontrar agora o pacote e carregá-lo. 837 00:46:35,720 --> 00:46:40,480 Você pode ver que eu não tenho encontrado o nome do pacote certo. 838 00:46:40,480 --> 00:46:42,820 >> Então, como você descobrir sobre os pacotes? 839 00:46:42,820 --> 00:46:46,380 Bem, há um grande site, feito disponível pelo povo Meteor, 840 00:46:46,380 --> 00:46:47,780 chamado atmospherejs.com. 841 00:46:47,780 --> 00:46:52,520 Atmospherejs, uma palavra, dot com, é um grande repositório 842 00:46:52,520 --> 00:46:57,660 para encontrar todo o Meteor pacotes no repositório. 843 00:46:57,660 --> 00:47:05,140 Posso pesquisar contas, e em seguida ele vai me mostrar todo o material relevante, 844 00:47:05,140 --> 00:47:07,320 todos os pacotes com o nome da conta. 845 00:47:07,320 --> 00:47:10,180 846 00:47:10,180 --> 00:47:13,270 >> Enquanto que carrega, podemos tentar a adição de alguns outros pacotes. 847 00:47:13,270 --> 00:47:19,380 Talvez o pacote Meteor não está funcionando agora, mas posso acrescentar Facebook. 848 00:47:19,380 --> 00:47:22,860 849 00:47:22,860 --> 00:47:27,190 Eu posso adicionar a conta e, em seguida, executar o projeto Meteor novamente. 850 00:47:27,190 --> 00:47:33,260 851 00:47:33,260 --> 00:47:36,900 Uma vez que isso começa, vamos ver o que mudou no site. 852 00:47:36,900 --> 00:47:40,010 853 00:47:40,010 --> 00:47:44,580 Você pode see-- eu poderia tem que atualizá-la aqui. 854 00:47:44,580 --> 00:47:47,320 >> Eu tenho um botão para configurar Facebook login. 855 00:47:47,320 --> 00:47:49,765 E aqui, eu tenho tudo as instruções de meteoros 856 00:47:49,765 --> 00:47:52,960 preparou para você para a criação de um aplicativo do Facebook. 857 00:47:52,960 --> 00:47:58,990 E você pode usar isso informações para adicionar seus IDs. 858 00:47:58,990 --> 00:48:04,130 Uma vez feito isso, você vai ter Facebook login trabalhando em seu app. 859 00:48:04,130 --> 00:48:08,559 >> Eu só vou chegar um ID de aplicativo e um segredo, 860 00:48:08,559 --> 00:48:10,100 só para te mostrar como isso pode funcionar. 861 00:48:10,100 --> 00:48:16,000 862 00:48:16,000 --> 00:48:20,360 Você vai precisar de uma conta no Facebook para usar as opções de desenvolvedores do Facebook. 863 00:48:20,360 --> 00:48:31,160 864 00:48:31,160 --> 00:48:35,290 Deixe-me apenas encontrar rapidamente a Teclas de meteoro que são necessárias. 865 00:48:35,290 --> 00:48:46,994 866 00:48:46,994 --> 00:48:49,160 Eu tenho um outro projeto Meteor que eu vou usar, 867 00:48:49,160 --> 00:48:55,590 e eu só vou tomar as chaves desse ficheiro. 868 00:48:55,590 --> 00:49:14,410 869 00:49:14,410 --> 00:49:20,930 >> E uma vez que eu encontrá-lo, eu vou ser capaz para copiar essas chaves em meu Facebook. 870 00:49:20,930 --> 00:49:23,489 Então, aqui é uma chave. 871 00:49:23,489 --> 00:49:24,280 E este é o segredo. 872 00:49:24,280 --> 00:49:26,071 Você não deve ser compartilhar isso com as pessoas. 873 00:49:26,071 --> 00:49:28,870 874 00:49:28,870 --> 00:49:30,910 E então você dá a ele seu segredo app. 875 00:49:30,910 --> 00:49:33,560 E isso é tão Facebook sabe que você é você. 876 00:49:33,560 --> 00:49:37,630 877 00:49:37,630 --> 00:49:39,080 E você salvar a configuração. 878 00:49:39,080 --> 00:49:45,160 879 00:49:45,160 --> 00:49:48,640 >> Eu acho que no processo I ter parado meu app Meteor. 880 00:49:48,640 --> 00:49:52,290 Então, eu só quero fazer certeza de que ele ainda está lá. 881 00:49:52,290 --> 00:49:54,962 882 00:49:54,962 --> 00:49:58,610 OK, vamos fazer com que o nosso servidor Meteor está em execução para que a página web está em execução. 883 00:49:58,610 --> 00:50:02,440 Observe se pararmos o Meteor servidor, a página ainda está lá. 884 00:50:02,440 --> 00:50:04,700 Ele só não vai atualizar mais. 885 00:50:04,700 --> 00:50:10,290 O servidor Meteor é necessário para certificar-se de que a página é ao vivo. 886 00:50:10,290 --> 00:50:14,050 >> OK, eu já o apresentou, e agora Posso entrar com Facebook. 887 00:50:14,050 --> 00:50:17,400 Agora é só uma questão de ter um pop up Facebook 888 00:50:17,400 --> 00:50:21,710 e colocando em sua conta informações e registro no. 889 00:50:21,710 --> 00:50:24,520 890 00:50:24,520 --> 00:50:27,930 Depois de fazer isso, o Facebook pode nag você para um pouco mais de segurança. 891 00:50:27,930 --> 00:50:29,810 Então vamos parar por aí. 892 00:50:29,810 --> 00:50:34,110 A questão é que quando você está feito com isso, você vai ter Facebook login. 893 00:50:34,110 --> 00:50:37,850 >> Meteor tem um monte de outros pacotes também. 894 00:50:37,850 --> 00:50:39,200 Você pode logar-se com Google+. 895 00:50:39,200 --> 00:50:40,500 Você pode logar-se com GitHub. 896 00:50:40,500 --> 00:50:42,170 Você pode logar-se com o Twitter. 897 00:50:42,170 --> 00:50:44,870 Ou se você procurar, você vai encontrar muitas outras coisas 898 00:50:44,870 --> 00:50:49,170 como Meetup, LinkedIn, e Meteor Developer. 899 00:50:49,170 --> 00:50:53,100 Então Meteor desenvolvedor foi o pacote que eu estava procurando. 900 00:50:53,100 --> 00:50:56,170 meteoro adicionar contas-meteoro pelo desenvolvedor. 901 00:50:56,170 --> 00:51:06,192 902 00:51:06,192 --> 00:51:07,900 Nesse meio tempo, eu também quero recomendar 903 00:51:07,900 --> 00:51:11,340 alguns outros pacotes para seus projetos. 904 00:51:11,340 --> 00:51:14,670 Ele pode ser útil para incluir o pacote jQuery. 905 00:51:14,670 --> 00:51:17,909 Isso permite que você use jQuery em seus clientes. 906 00:51:17,909 --> 00:51:21,200 Você poderia fazê-lo apenas com uma linha, e Meteor vai se certificar de que você está atualizado 907 00:51:21,200 --> 00:51:21,825 em jQuery. 908 00:51:21,825 --> 00:51:24,330 909 00:51:24,330 --> 00:51:27,450 Eu também recomendo houston: admin. 910 00:51:27,450 --> 00:51:31,550 >> Isto é como uma espécie de phpMyAdmin tipo de ferramenta para o seu MongoDB. 911 00:51:31,550 --> 00:51:33,890 Isso permite que você edite seus dados com bastante facilidade 912 00:51:33,890 --> 00:51:37,950 sem ter que ir para o shell Mongo, como se eu tivesse feito mais cedo no seminário. 913 00:51:37,950 --> 00:51:43,160 914 00:51:43,160 --> 00:51:47,101 Portanto, agora que que está sendo executado, vamos executar Meteoro novamente e ver o que podemos fazer. 915 00:51:47,101 --> 00:51:56,240 916 00:51:56,240 --> 00:52:00,720 >> Você percebe que a adição de alguns pacotes pode ter-lhes apresentar algumas advertências. 917 00:52:00,720 --> 00:52:02,720 Você não vai precisar se preocupar sobre isso com houston. 918 00:52:02,720 --> 00:52:06,040 919 00:52:06,040 --> 00:52:10,810 Assim, podemos agora têm a opção para configurar Meteor administrador. 920 00:52:10,810 --> 00:52:15,080 E eles dão-lhe as direções se você quiser configurar isso. 921 00:52:15,080 --> 00:52:17,750 922 00:52:17,750 --> 00:52:20,440 >> Nós também podemos agora ir para / admin. 923 00:52:20,440 --> 00:52:23,280 Este é trazido a você pelo pacote de Houston. 924 00:52:23,280 --> 00:52:27,470 E este é Meteor interface de administração. 925 00:52:27,470 --> 00:52:30,660 Você acabou de criar uma conta de administrador, assim. 926 00:52:30,660 --> 00:52:38,150 E se você atualizar a página, você pode tem algumas coleções aparecendo. 927 00:52:38,150 --> 00:52:40,980 928 00:52:40,980 --> 00:52:43,460 >> É uma ferramenta muito útil, e eu recomendo fortemente. 929 00:52:43,460 --> 00:52:46,717 930 00:52:46,717 --> 00:52:49,050 Você pode ver que, por causa houston estava dando alguns erros, 931 00:52:49,050 --> 00:52:52,330 não temos quaisquer coleções aparecendo agora. 932 00:52:52,330 --> 00:52:56,800 A maneira como você usaria houston é certificando-se esta função fica 933 00:52:56,800 --> 00:52:58,860 chamado em seus-Todos simples. 934 00:52:58,860 --> 00:53:01,370 Assim, não faz Houston saber o que minhas tarefas são. 935 00:53:01,370 --> 00:53:04,490 >> Montamos um Mongo coleção chamada tarefas. 936 00:53:04,490 --> 00:53:11,390 Vamos entrar em simples-Todos e apenas certificar-se de que no JavaScript, 937 00:53:11,390 --> 00:53:16,295 nós adicionamos tarefas para nossas coleções. 938 00:53:16,295 --> 00:53:19,340 939 00:53:19,340 --> 00:53:25,670 Temos agora salvo, e está construindo a aplicação, refrescante. 940 00:53:25,670 --> 00:53:26,750 E vamos ver. 941 00:53:26,750 --> 00:53:29,090 Agora, temos algumas tarefas. 942 00:53:29,090 --> 00:53:32,630 E podemos acrescentar algumas novas tarefas. 943 00:53:32,630 --> 00:53:35,840 Mas, se queremos adicionar tarefas, vamos fazê-lo com o próprio app. 944 00:53:35,840 --> 00:53:39,660 945 00:53:39,660 --> 00:53:41,050 >> Agora podemos acrescentar alguns dados. 946 00:53:41,050 --> 00:53:53,410 Oi, esta é uma tarefa. 947 00:53:53,410 --> 00:53:57,080 Parece meio estranho que não estamos vendo nenhuma tarefa. 948 00:53:57,080 --> 00:54:00,290 949 00:54:00,290 --> 00:54:05,260 Nós pode querer verificar se temos qualquer erros aqui, ou talvez em outro lugar. 950 00:54:05,260 --> 00:54:08,810 951 00:54:08,810 --> 00:54:20,260 Se formos para admin, que parece estranho. 952 00:54:20,260 --> 00:54:24,080 Se você puxar o repositório após este seminário, 953 00:54:24,080 --> 00:54:27,580 Eu vou ter certeza de que simple-Todos trabalha com houston. 954 00:54:27,580 --> 00:54:30,370 Infelizmente, não parece estar trabalhando neste exato momento. 955 00:54:30,370 --> 00:54:34,810 956 00:54:34,810 --> 00:54:37,640 >> Existem outras questões? 957 00:54:37,640 --> 00:54:41,800 Houston normalmente é um ferramenta que funciona muito bem. 958 00:54:41,800 --> 00:54:44,510 Houston, especificamente, é um pouco buggier do que os outros, 959 00:54:44,510 --> 00:54:49,470 mas eu recomendo que quando funciona. 960 00:54:49,470 --> 00:54:50,080 Sim. 961 00:54:50,080 --> 00:54:52,395 >> AUDIÊNCIA: O que você pode fazer com o pacote Facebook 962 00:54:52,395 --> 00:54:54,270 uma vez que o usuário esteja conectado com seu Facebook? 963 00:54:54,270 --> 00:54:55,978 >> ROGER ZURAWICKI: Uma vez um usuário de logado, 964 00:54:55,978 --> 00:54:59,540 você pode fazer chamadas para a API do Facebook. 965 00:54:59,540 --> 00:55:02,890 Um monte de que se encontra mais em como Facebook abre sua API. 966 00:55:02,890 --> 00:55:05,120 Meteor, certifique-se tem a ligação. 967 00:55:05,120 --> 00:55:09,300 Mas depois de tudo isso é uma questão de aprender a usar a API do Facebook. 968 00:55:09,300 --> 00:55:10,216 AUDIÊNCIA: [inaudível]. 969 00:55:10,216 --> 00:55:17,756 970 00:55:17,756 --> 00:55:18,880 ROGER ZURAWICKI: Tudo bem. 971 00:55:18,880 --> 00:55:21,670 Muito obrigado por Neste seminário CS50 em Meteor. 972 00:55:21,670 --> 00:55:24,060 Se você tiver alguma dúvida, você pode me enviar e-mail 973 00:55:24,060 --> 00:55:28,319 no meu endereço de e-mail listados abaixo do seminário. 974 00:55:28,319 --> 00:55:30,110 E eu vou ser feliz para responder às suas perguntas. 975 00:55:30,110 --> 00:55:33,020 Eu também vou estar no CS50 Hackathon deveria 976 00:55:33,020 --> 00:55:35,550 precisar de ajuda com seus projetos de meteoros. 977 00:55:35,550 --> 00:55:37,650 Obrigado por assistir. 978 00:55:37,650 --> 00:55:38,816