1 00:00:00,000 --> 00:00:00,500 2 00:00:00,500 --> 00:00:10,960 [MUSIC CHƠI] 3 00:00:10,960 --> 00:00:12,960 ROGER ZURAWICKI: Hi, my tên là Roger Zurawicki, 4 00:00:12,960 --> 00:00:16,410 và tôi sẽ được bao gồm Hội thảo CS50 Meteor. 5 00:00:16,410 --> 00:00:21,520 Meteor là một khuôn khổ mới dành cho các loại mới của web, 6 00:00:21,520 --> 00:00:25,220 không phải là PHP tạo các yêu cầu qua lại loại 7 00:00:25,220 --> 00:00:29,070 của web chúng ta đã thấy trong các bộ PHPP, nhưng JavaScript năng động hơn 8 00:00:29,070 --> 00:00:31,370 các bộ phận của web. 9 00:00:31,370 --> 00:00:36,260 Những điều có thể làm Meteor bao gồm webcam Đang cập nhật 10 00:00:36,260 --> 00:00:42,380 và ngay lập tức liên lạc giữa người sử dụng cùng một trang web. 11 00:00:42,380 --> 00:00:46,420 >> Đối với hội thảo này, chúng tôi có đang lưu trữ tại GitHub của tôi. 12 00:00:46,420 --> 00:00:49,690 Bạn có thể đi đến URL này và tải về nó. 13 00:00:49,690 --> 00:00:53,085 Nếu bạn biết làm thế nào để sử dụng Git, bạn có thể sao chép các kho lưu trữ. 14 00:00:53,085 --> 00:00:55,460 Nếu bạn không biết làm thế nào để sử dụng Git hoặc đã không được sử dụng GitHub, 15 00:00:55,460 --> 00:00:57,030 đó là hoàn toàn tốt đẹp. 16 00:00:57,030 --> 00:01:00,480 Tôi sẽ cho bạn thấy thực sự nhanh chóng làm thế nào chúng ta có thể đi đến GitHub, 17 00:01:00,480 --> 00:01:03,604 và có một tùy chọn để tải về một file zip ngay tại đó. 18 00:01:03,604 --> 00:01:06,770 Khi bạn tải về thư mục này, bạn có thể bắt đầu chơi với mã của chúng tôi. 19 00:01:06,770 --> 00:01:10,200 20 00:01:10,200 --> 00:01:13,190 >> Thông tin thêm về Meteor có thể được tìm thấy tại meteor.com. 21 00:01:13,190 --> 00:01:16,580 Trong thư mục Hội thảo, tôi thực sự có một số dự án Meteor chúng ta có thể sử dụng. 22 00:01:16,580 --> 00:01:20,380 23 00:01:20,380 --> 00:01:26,400 Một trong các thư mục của chúng tôi, chúng tôi có trong Hội thảo dự án là ứng dụng todos. 24 00:01:26,400 --> 00:01:28,780 Vì vậy, nếu tôi đi vào nó tôi, có Meteor được cài đặt. 25 00:01:28,780 --> 00:01:35,690 Vì vậy, để chạy nó, tôi chỉ cần gõ Meteor, và Meteor sẽ cài đặt. 26 00:01:35,690 --> 00:01:38,310 Như bạn có thể thấy, chúng ta phải chắc chắn rằng chúng ta cài đặt Meteor. 27 00:01:38,310 --> 00:01:40,562 Vì vậy, tôi chỉ cần đi tới chạy nó một lần nữa 28 00:01:40,562 --> 00:01:42,520 để đảm bảo rằng Meteor được cài đặt đúng cách. 29 00:01:42,520 --> 00:01:46,370 30 00:01:46,370 --> 00:01:48,450 >> Trong khi tôi có Meteor cài đặt, tôi có thể chỉ cho bạn 31 00:01:48,450 --> 00:01:53,760 một số trình diễn trực tiếp của các trang web Meteor sẽ trực tiếp ngay bây giờ trên internet. 32 00:01:53,760 --> 00:01:57,990 Tôi có một bản demo của ứng dụng của chúng tôi. 33 00:01:57,990 --> 00:02:00,740 Bạn có thể truy cập nó tại URL sau đây. 34 00:02:00,740 --> 00:02:06,350 Đây là ứng dụng để làm điều đó, chúng tôi có trong thư mục hội thảo của chúng tôi. 35 00:02:06,350 --> 00:02:09,940 Các URL cho điều này là rozu-rabbit.meteor.com. 36 00:02:09,940 --> 00:02:14,782 Bạn sẽ thấy rằng Meteor sẽ thực sự chủ dự án Meteor của bạn miễn phí. 37 00:02:14,782 --> 00:02:17,490 Và vào cuối buổi hội thảo, bạn sẽ có thể làm được điều này. 38 00:02:17,490 --> 00:02:20,550 39 00:02:20,550 --> 00:02:22,160 >> Đây là một ứng dụng để làm danh sách. 40 00:02:22,160 --> 00:02:27,740 Và bạn có thể đăng nhập, tạo tài khoản, và thêm các công việc. 41 00:02:27,740 --> 00:02:30,020 Bạn có thể tạo một tài khoản như vậy. 42 00:02:30,020 --> 00:02:33,050 43 00:02:33,050 --> 00:02:35,850 Và bây giờ, khi bạn có một tài khoản, bạn có thể thêm các công việc. 44 00:02:35,850 --> 00:02:42,780 Ví dụ, một trong những nhiệm vụ tôi có thể cần phải đi nhặt giặt của tôi. 45 00:02:42,780 --> 00:02:45,160 Và nếu bạn đang ở trên này trang web trực tuyến, bạn sẽ thấy 46 00:02:45,160 --> 00:02:49,790 thực sự thấy nhiệm vụ này trên máy tính của bạn trong thời gian thực. 47 00:02:49,790 --> 00:02:53,760 >> Tôi có thể cho bạn một bản demo nhanh điều này bằng cách mở rozu-thỏ 48 00:02:53,760 --> 00:02:56,700 trong tab khác với cùng một URL. 49 00:02:56,700 --> 00:03:00,360 Và chúng ta thấy rằng các dữ liệu cùng đi lên. 50 00:03:00,360 --> 00:03:02,240 Chúng tôi cũng có thể chạy nó trong một trình duyệt khác nhau. 51 00:03:02,240 --> 00:03:03,420 Nói rằng tôi chạy nó trong Safari. 52 00:03:03,420 --> 00:03:04,720 Bằng cách đó, chúng tôi không đăng nhập. 53 00:03:04,720 --> 00:03:07,750 54 00:03:07,750 --> 00:03:11,060 Vì vậy, chúng tôi có các Meteor cùng ứng dụng, và một khi nó tải, 55 00:03:11,060 --> 00:03:13,910 chúng ta sẽ thấy cùng một dữ liệu chúng tôi đã làm trong lần đầu tiên. 56 00:03:13,910 --> 00:03:16,710 Như bạn có thể thấy, tôi không đăng nhập vào đây. 57 00:03:16,710 --> 00:03:20,000 Và khi các dữ liệu kiểm tra khán giả, nó cập nhật trên tất cả các trình duyệt 58 00:03:20,000 --> 00:03:20,910 đồng thời. 59 00:03:20,910 --> 00:03:23,740 Đây là một trong những thực sự Các tính năng thú vị về Meteor. 60 00:03:23,740 --> 00:03:27,700 Với hầu như không có công việc, bạn có một cập nhật ứng dụng trực tiếp 61 00:03:27,700 --> 00:03:31,240 rằng những thay đổi trên tất cả các thiết bị của bạn cùng một lúc. 62 00:03:31,240 --> 00:03:36,690 >> Nếu tôi chọn check box ở đây trong danh sách để làm của tôi, chúng tôi sẽ có, 63 00:03:36,690 --> 00:03:41,230 trong trình duyệt Chrome khác của tôi, các mục kiểm tra ra. 64 00:03:41,230 --> 00:03:42,605 Và điều này xảy ra ngay lập tức. 65 00:03:42,605 --> 00:03:46,340 66 00:03:46,340 --> 00:03:47,280 Được rồi. 67 00:03:47,280 --> 00:03:52,730 Vì vậy, nó trông giống như Meteor cài đặt sẵn sàng. 68 00:03:52,730 --> 00:03:57,000 Vì vậy bây giờ chúng ta hãy quay trở lại todos ứng dụng và chạy này tại địa phương. 69 00:03:57,000 --> 00:04:01,599 >> Nếu bạn có một dự án Meteor, bạn có thể chỉ cần chạy nó với lệnh Meteor. 70 00:04:01,599 --> 00:04:03,640 Một khi bạn làm điều này, Meteor sẽ làm một số chuẩn bị 71 00:04:03,640 --> 00:04:06,120 để đảm bảo tất cả các mã của bạn là trong kiểm tra. 72 00:04:06,120 --> 00:04:12,440 Và sau đó nó sẽ cho bạn biết rằng dự án đã sẵn sàng để được phục vụ. 73 00:04:12,440 --> 00:04:17,750 Bạn có thể cần phải cho phép của bạn tường lửa, nếu khối máy tính của mình. 74 00:04:17,750 --> 00:04:22,440 >> Vì vậy, những gì Meteor là nói cho tôi bây giờ là tại trang web này 75 00:04:22,440 --> 00:04:26,100 địa phương để máy tính của tôi, tôi có thể nhìn thấy những gì dự án này là Meteor. 76 00:04:26,100 --> 00:04:29,290 Lưu ý rằng ngay bây giờ, ứng dụng của tôi là không thể truy cập vào internet. 77 00:04:29,290 --> 00:04:35,170 Chúng tôi sẽ giới thiệu như thế nào để mang lại Meteor của bạn ứng dụng cho một trang web sống một chút sau này. 78 00:04:35,170 --> 00:04:40,510 Vì vậy, tôi chỉ cần đi để sao chép này URL bây giờ và đi vào Google Chrome. 79 00:04:40,510 --> 00:04:42,600 >> Và điều này là để làm liệt kê từ các ví dụ. 80 00:04:42,600 --> 00:04:46,080 Bạn có thể thấy họ thực hiện thêm một vài tính năng ở đây. 81 00:04:46,080 --> 00:04:49,210 Chúng tôi có các tab khác nhau, chúng tôi có các tính năng tương tự tài khoản, 82 00:04:49,210 --> 00:04:52,141 và chúng ta có thể thêm vào danh sách mới. 83 00:04:52,141 --> 00:04:54,140 Bây giờ, một trong những thực sự tính năng thú vị về Meteor 84 00:04:54,140 --> 00:04:57,450 là không chỉ có thể này làm việc trên trình duyệt web của bạn, 85 00:04:57,450 --> 00:05:00,030 nhưng bạn cũng có thể tạo ra bản iPhone và Android 86 00:05:00,030 --> 00:05:02,990 ứng dụng thông qua một công cụ gọi là PhoneGap. 87 00:05:02,990 --> 00:05:06,740 >> Vì vậy, một số dự án sẽ gia được cấu hình sẵn để chạy 88 00:05:06,740 --> 00:05:08,700 trên iOS, như ứng dụng todos này. 89 00:05:08,700 --> 00:05:14,780 Vì vậy, tất cả tôi cần phải làm gì để chạy nó trong iOS được gõ Meteor, chạy, và sau đó iOS. 90 00:05:14,780 --> 00:05:17,540 Và khi tôi làm điều đó, Meteor sẽ chuẩn bị gói lại. 91 00:05:17,540 --> 00:05:21,670 Và sau đó, một khi nó sẵn sàng, nó sẽ thấy tải trình giả lập iOS trên lệnh của tôi. 92 00:05:21,670 --> 00:05:24,745 Lưu ý bạn chỉ có thể chạy các ứng dụng iOS nếu bạn có một máy tính Mac. 93 00:05:24,745 --> 00:05:27,650 94 00:05:27,650 --> 00:05:30,730 Bạn có thể chạy các ứng dụng của bạn trên Android trên tất cả các nền tảng. 95 00:05:30,730 --> 00:05:34,070 96 00:05:34,070 --> 00:05:38,290 >> Vì vậy, bây giờ bạn có thể thấy rằng iPhone của tôi giả đã đưa ra trên màn hình của tôi. 97 00:05:38,290 --> 00:05:40,370 Và chỉ trong một khoảnh khắc, nó sẽ tải các ứng dụng. 98 00:05:40,370 --> 00:05:46,070 99 00:05:46,070 --> 00:05:48,490 Nếu chúng ta làm cho nó một chút nhỏ hơn để phù hợp trên màn hình, 100 00:05:48,490 --> 00:05:50,780 chúng ta thấy chúng ta có ứng dụng iPhone của chúng tôi. 101 00:05:50,780 --> 00:05:53,220 Và chỉ như vậy chúng tôi không bị lẫn lộn, chúng ta hãy làm 102 00:05:53,220 --> 00:05:59,790 chắc chắn chúng tôi đang trên cùng một website, host nội bộ 3000. 103 00:05:59,790 --> 00:06:03,490 >> Vì vậy, ngay ở đây là một ví dụ của các ứng dụng Meteor tôi có, 104 00:06:03,490 --> 00:06:08,770 ứng dụng todos, chạy cả trên một điện thoại và trên một trình duyệt web. 105 00:06:08,770 --> 00:06:10,770 Và khi tôi thay đổi thứ trong các trình duyệt web, 106 00:06:10,770 --> 00:06:12,675 nó ngay lập tức đi vào điện thoại. 107 00:06:12,675 --> 00:06:16,500 Và tôi có thể xóa một cái gì đó trên điện thoại, và nó thay đổi trong trình duyệt web. 108 00:06:16,500 --> 00:06:21,050 >> Bây giờ, thông thường để tạo ra nguồn gốc điện thoại ứng dụng cho iOS hay Android, 109 00:06:21,050 --> 00:06:26,090 bạn cần phải biết, hoặc Java hoặc Mục tiêu C. Công nghệ này sử dụng Meteor 110 00:06:26,090 --> 00:06:29,240 để cho phép JavaScript để chạy như ứng dụng của bạn được gọi là PhoneGap. 111 00:06:29,240 --> 00:06:31,320 Ứng dụng của bạn cơ bản là là một trình duyệt web. 112 00:06:31,320 --> 00:06:34,500 Và Meteor xử lý tất cả những phần khó khăn tham gia 113 00:06:34,500 --> 00:06:39,820 cho rằng việc đưa trình duyệt web để iPhone của bạn hoặc thiết bị Android của bạn. 114 00:06:39,820 --> 00:06:42,210 Bạn có thể thấy rằng Giao diện người dùng được mịn màng, 115 00:06:42,210 --> 00:06:45,290 và nó trông và cảm thấy rất giống như một ứng dụng bản địa. 116 00:06:45,290 --> 00:06:48,620 Chú ý rằng nếu tôi đi đến nhà màn hình bây giờ, tôi cũng nhận được một biểu tượng. 117 00:06:48,620 --> 00:06:50,880 Đây không phải là một trang web như thế bạn muốn tìm thấy trong Safari. 118 00:06:50,880 --> 00:06:51,860 Đây là ứng dụng của riêng mình. 119 00:06:51,860 --> 00:06:54,130 Bạn có thể cài đặt và xóa nó nếu bạn muốn. 120 00:06:54,130 --> 00:06:59,500 121 00:06:59,500 --> 00:07:04,436 >> Chúng tôi cũng đã có thể hiển thị cho bạn những gì các mã cho loại todos ứng dụng như thế nào. 122 00:07:04,436 --> 00:07:08,260 Nếu bạn nhìn vào các thư mục todos, bạn sẽ thấy có rất nhiều thư mục. 123 00:07:08,260 --> 00:07:11,440 Nhưng qua khóa học hội thảo, chúng tôi sẽ 124 00:07:11,440 --> 00:07:14,780 hiểu những gì mỗi thư mục được sử dụng cho. 125 00:07:14,780 --> 00:07:17,830 Chúng ta hãy đi vào nhà ga vì vậy chúng tôi có thể xem các tập tin một chút tốt hơn. 126 00:07:17,830 --> 00:07:20,410 >> Tôi sẽ nhấn Control C để ngăn chặn các máy chủ, 127 00:07:20,410 --> 00:07:22,770 và bây giờ tôi trở lại trong các ứng dụng todos. 128 00:07:22,770 --> 00:07:26,660 Tôi có các thư mục khác nhau ở đây, giống như folder client, các thư mục máy chủ. 129 00:07:26,660 --> 00:07:30,500 Và các thư mục này chỉ đơn giản có nghĩa là tất cả mọi thứ trong thư mục client 130 00:07:30,500 --> 00:07:32,630 được thực hiện trên trình duyệt web của bạn. 131 00:07:32,630 --> 00:07:35,530 Tất cả mọi thứ trong một thư mục máy chủ được thực hiện trên một máy chủ. 132 00:07:35,530 --> 00:07:38,100 >> Những gì tôi muốn chỉ ra là những gì chúng tôi đã có 133 00:07:38,100 --> 00:07:42,140 khi chúng tôi đã có điện thoại của chúng tôi chạy và Trình duyệt web của chúng tôi, đây là những khách hàng. 134 00:07:42,140 --> 00:07:45,730 Nhưng những gì đang chạy trong một thiết bị đầu cuối, đó là các máy chủ. 135 00:07:45,730 --> 00:07:48,710 Chúng tôi có các thư mục khác, như lib, đó là mã thư viện, 136 00:07:48,710 --> 00:07:51,050 như helper của bạn chức năng, trong đó bạn có thể 137 00:07:51,050 --> 00:07:53,710 sử dụng trên cả máy khách và máy chủ. 138 00:07:53,710 --> 00:07:55,820 Và sau đó bạn có một công thư mục và tài nguyên 139 00:07:55,820 --> 00:07:59,310 thư mục cần thiết cho việc hình ảnh của bạn và CSS khác nạp. 140 00:07:59,310 --> 00:08:02,630 141 00:08:02,630 --> 00:08:09,360 >> Nếu bạn đã cài đặt Meteor, chúng tôi sẽ tiếp tục hướng dẫn cho Meteor. 142 00:08:09,360 --> 00:08:12,790 Bạn có thể vào URL này, meteor.com/install, 143 00:08:12,790 --> 00:08:17,990 để có được những dòng lệnh mà tôi cho thấy rằng bạn cài đặt Meteor. 144 00:08:17,990 --> 00:08:20,240 Chúng tôi sẽ đi qua đầu tiên vài bước để có được một tốt hơn 145 00:08:20,240 --> 00:08:22,760 cảm nhận về làm thế nào để cài đặt Meteor. 146 00:08:22,760 --> 00:08:28,000 >> Nhưng trước tiên, tôi nghĩ rằng điều quan trọng là chúng tôi xem xét một chút JavaScript. 147 00:08:28,000 --> 00:08:32,360 Để hiển thị cho bạn một số ví dụ về cách kiến thức C của chúng tôi có thể được dịch 148 00:08:32,360 --> 00:08:34,950 để Javascript, tôi đã tạo ra một vài ví dụ. 149 00:08:34,950 --> 00:08:36,940 Họ đang có trong thư mục js. 150 00:08:36,940 --> 00:08:41,750 Vì vậy, nếu trong các cuộc hội thảo thư mục bạn nhìn, có một thư mục gọi là js. 151 00:08:41,750 --> 00:08:44,540 Và ở đây, chúng tôi có một vài ví dụ. 152 00:08:44,540 --> 00:08:50,120 >> Hãy mở đầu ví dụ và xem rất nhanh chóng. 153 00:08:50,120 --> 00:08:53,980 Tiêu chuẩn của bạn những gì chúng ta thấy là chào lệnh thế giới. 154 00:08:53,980 --> 00:08:56,520 Bạn thông báo trong C mà bạn có khá một vài dòng. 155 00:08:56,520 --> 00:09:00,490 Và như sinh viên CS50 biết, chúng tôi cần một chức năng chính, 156 00:09:00,490 --> 00:09:05,730 và chúng ta phải bao gồm các tiêu chuẩn I / O thư viện để gọi printf. 157 00:09:05,730 --> 00:09:09,320 >> Hãy nhìn vào cách so sánh JavaScript. 158 00:09:09,320 --> 00:09:11,560 Tôi sẽ mở ex1.js. 159 00:09:11,560 --> 00:09:14,650 Nhận xét ra là những gì C mã sẽ trông như thế nào, 160 00:09:14,650 --> 00:09:17,550 và các dòng dưới đây là tất cả bạn cần phải chạy trong Node. 161 00:09:17,550 --> 00:09:20,452 Bạn không cần phải có chức năng chính, bạn không cần phải bao gồm bất kỳ tập tin, 162 00:09:20,452 --> 00:09:21,660 và bạn không cần phải trả lại. 163 00:09:21,660 --> 00:09:23,810 Bạn chỉ cần gọi console.log. 164 00:09:23,810 --> 00:09:26,370 Điều này là tương đương với printf của bạn. 165 00:09:26,370 --> 00:09:29,310 >> Và nó có cùng đối số printf sẽ. 166 00:09:29,310 --> 00:09:33,870 Và để chạy nó, thay vì chạy làm EX1, 167 00:09:33,870 --> 00:09:38,930 bạn sẽ chỉ cần gọi Node ex1.js. 168 00:09:38,930 --> 00:09:41,830 Bạn viết Node và sau đó các tập tin, và nó được chạy. 169 00:09:41,830 --> 00:09:43,580 Nó không nhận được biên soạn. 170 00:09:43,580 --> 00:09:45,970 JavaScript là một ngôn ngữ giải thích. 171 00:09:45,970 --> 00:09:49,150 Vì vậy, nó không cần phải được biên dịch trước khi nó chạy. 172 00:09:49,150 --> 00:09:53,450 Nếu tôi muốn chạy ex1.c, Tôi phải làm cho nó lần đầu tiên, 173 00:09:53,450 --> 00:09:59,160 và sau đó tôi có thể chạy file thực thi để có được đầu ra tương tự. 174 00:09:59,160 --> 00:10:02,460 >> Hãy nhanh chóng bao gồm một số khái niệm JavaScript khác. 175 00:10:02,460 --> 00:10:04,490 Hãy nhìn vào ví dụ hai. 176 00:10:04,490 --> 00:10:14,690 Trong ex2.js, trong ex2.c, chúng ta có thể thấy rằng chúng tôi có một số mã. 177 00:10:14,690 --> 00:10:16,550 Hãy để tôi nhanh chóng đi đến một trình soạn thảo văn bản tốt hơn 178 00:10:16,550 --> 00:10:18,400 đó sẽ hiển thị các đường mới tốt hơn một chút. 179 00:10:18,400 --> 00:10:21,760 180 00:10:21,760 --> 00:10:22,380 Được rồi. 181 00:10:22,380 --> 00:10:24,190 Ở đây chúng ta có ví dụ 2.c. 182 00:10:24,190 --> 00:10:27,360 Ở đây chúng ta có các loại khác nhau rằng chúng tôi đang in ra. 183 00:10:27,360 --> 00:10:30,880 Và như chúng ta đã biết, printf mất đối số phần trăm khác nhau 184 00:10:30,880 --> 00:10:34,050 để truy cập vào các phần khác nhau của dữ liệu. 185 00:10:34,050 --> 00:10:36,840 Nếu chúng ta muốn in một chuỗi, chúng ta gọi là% s. 186 00:10:36,840 --> 00:10:40,390 Nếu chúng ta muốn gọi một nổi số điểm, chúng tôi gọi là% f. 187 00:10:40,390 --> 00:10:45,810 Và không có cách nào dễ dàng để gọi một Boolean bằng giá trị đúng hay sai của nó. 188 00:10:45,810 --> 00:10:50,760 Nhưng nếu bạn sử dụng% d, bạn có thể nhận được 0 hoặc 1 cho sai và đúng sự thật. 189 00:10:50,760 --> 00:10:53,270 >> JavaScript là một chút đẹp hơn cho chúng ta. 190 00:10:53,270 --> 00:10:57,740 Trong JavaScript, chúng ta hãy nhìn vào những sự khác biệt, chúng tôi có trong file này. 191 00:10:57,740 --> 00:11:05,790 Đầu tiên, bạn nhận thấy rằng trong C chúng ta phải khởi tạo tất cả các biến có một kiểu. 192 00:11:05,790 --> 00:11:06,940 S là một ngôi sao char. 193 00:11:06,940 --> 00:11:08,930 Đó là một chuỗi, và nó không thể được bất kỳ loại khác. 194 00:11:08,930 --> 00:11:10,450 N là một phao. 195 00:11:10,450 --> 00:11:11,780 B là một Bool. 196 00:11:11,780 --> 00:11:14,220 >> Nhưng trong JavaScript, có nhiều loại động. 197 00:11:14,220 --> 00:11:16,400 Điều đó có nghĩa rằng bạn không cần phải nói với JavaScript 198 00:11:16,400 --> 00:11:17,860 những loại biến của bạn sẽ được. 199 00:11:17,860 --> 00:11:22,730 Bạn chỉ cần nói var cho biến, tên của biến, và sau đó giá trị của nó. 200 00:11:22,730 --> 00:11:24,690 Vì vậy, một var có thể là bất cứ điều gì thực sự. 201 00:11:24,690 --> 00:11:25,640 Nó có thể là một chuỗi. 202 00:11:25,640 --> 00:11:27,300 Nó có thể là một số điểm nổi. 203 00:11:27,300 --> 00:11:28,560 Nó có thể là một nhân vật. 204 00:11:28,560 --> 00:11:31,250 Nó có thể là một Boolean. 205 00:11:31,250 --> 00:11:34,380 Và ghi giao diện hơi khác. 206 00:11:34,380 --> 00:11:37,340 Nếu bạn muốn in một số, bạn gọi% d. 207 00:11:37,340 --> 00:11:41,740 Nhưng hầu hết các giá trị có thể được in như dây tốt. 208 00:11:41,740 --> 00:11:46,220 >> Hãy chạy trong Node để xem những gì sẽ xảy ra. 209 00:11:46,220 --> 00:11:51,880 Tôi có thể gọi Node ex2.js, và chúng tôi nhận được printf 210 00:11:51,880 --> 00:11:56,870 với các giá trị CS50, N là số điểm nổi, 211 00:11:56,870 --> 00:12:00,620 và sau đó B là Boolean chuyển thành một chuỗi đúng. 212 00:12:00,620 --> 00:12:03,830 Còn nếu chúng ta làm ví dụ 2.c? 213 00:12:03,830 --> 00:12:09,630 Vâng, chúng tôi vẫn có một số nhiều phiền toái với printf. 214 00:12:09,630 --> 00:12:13,110 Chú ý rằng điểm nổi số phải được định dạng đúng, 215 00:12:13,110 --> 00:12:18,120 và rằng Boolean không thể đơn giản được hiển thị như là đúng hay sai. 216 00:12:18,120 --> 00:12:18,620 Được rồi. 217 00:12:18,620 --> 00:12:22,680 Bây giờ chúng ta hãy nhìn vào ví dụ ba. 218 00:12:22,680 --> 00:12:26,470 Trong ví dụ ba, chúng tôi đang hiển thị làm thế nào bạn sẽ sử dụng một vòng lặp for. 219 00:12:26,470 --> 00:12:27,630 Trong thực tế, nó rất đơn giản. 220 00:12:27,630 --> 00:12:31,430 Một trong những điều tốt đẹp về JavaScript là nó được dựa trên C. 221 00:12:31,430 --> 00:12:33,920 Điều đó có nghĩa là rất nhiều bạn mã sẽ trông rất giống nhau 222 00:12:33,920 --> 00:12:36,490 và cảm thấy rất nhiều như nhau. 223 00:12:36,490 --> 00:12:39,220 Trong vòng lặp for, điều duy nhất mà đã thực sự thay đổi ở đây 224 00:12:39,220 --> 00:12:41,840 là thay vì int i, chúng tôi có var i. 225 00:12:41,840 --> 00:12:45,470 Chúng tôi vẫn có thể gán cho nó giá trị gia bằng không, kiểm tra xem nó ít hơn năm, 226 00:12:45,470 --> 00:12:49,390 và tăng nó bằng một với các nhà điều hành ++. 227 00:12:49,390 --> 00:12:56,286 Chúng tôi gọi console.log trên i, và rằng sẽ in cho chúng tôi một số với mỗi dòng. 228 00:12:56,286 --> 00:12:58,410 Hãy chạy nó thực sự nhanh chóng để xem những gì nó ra. 229 00:12:58,410 --> 00:13:02,320 230 00:13:02,320 --> 00:13:03,880 Chúng tôi nhận được một số mới trong mỗi dòng. 231 00:13:03,880 --> 00:13:06,920 Một điều tôi muốn bạn để thông báo với console.log 232 00:13:06,920 --> 00:13:09,960 là bạn không phải viết backslash n cho các dòng mới. 233 00:13:09,960 --> 00:13:12,480 Console.log sẽ in tất cả mọi thứ trên một dòng riêng. 234 00:13:12,480 --> 00:13:14,585 Đó là một tính năng đẹp JavaScript cho chúng ta. 235 00:13:14,585 --> 00:13:18,440 236 00:13:18,440 --> 00:13:22,600 >> Bây giờ chúng ta hãy mở ra ví dụ bốn. 237 00:13:22,600 --> 00:13:28,710 Trong ví dụ bốn, lần đầu tiên trong C, chúng tôi đang kêu gọi một vài chức năng. 238 00:13:28,710 --> 00:13:33,290 Chú ý rằng chúng ta phải khai báo chức năng trước khi chúng ta sử dụng chúng trong chính. 239 00:13:33,290 --> 00:13:37,250 Nếu chúng ta có chính đầu tiên và sau đó thêm và sau đó cao, thực hiện, 240 00:13:37,250 --> 00:13:39,540 kêu vang, hay GCC sẽ cung cấp cho chúng tôi một lỗi nói 241 00:13:39,540 --> 00:13:41,060 mà nó không biết những gì là cao. 242 00:13:41,060 --> 00:13:42,780 Nó không biết là gì add. 243 00:13:42,780 --> 00:13:46,480 Vì vậy, trong C, bạn phải cầu kỳ về thứ tự mà bạn gọi chức năng của bạn. 244 00:13:46,480 --> 00:13:49,220 245 00:13:49,220 --> 00:13:51,310 >> Chúng ta hãy xem làm thế nào bạn có thể làm điều này trong JavaScript. 246 00:13:51,310 --> 00:13:56,060 Chúng tôi có các file khác nhau vì có là một vài cách khác nhau để làm điều này. 247 00:13:56,060 --> 00:13:58,950 Một cách là khá nhiều một bản dịch trực tiếp. 248 00:13:58,950 --> 00:14:02,180 Bởi vì chức năng trong C loại trở lại, và JavaScript 249 00:14:02,180 --> 00:14:05,210 không thực sự biết hoặc chăm sóc về những gì loại bạn quay trở lại, 250 00:14:05,210 --> 00:14:06,300 bạn không viết một kiểu. 251 00:14:06,300 --> 00:14:08,100 Thay vào đó, bạn chỉ cần để viết chức năng, 252 00:14:08,100 --> 00:14:11,180 và tất cả mọi thứ là khá nhiều như trước. 253 00:14:11,180 --> 00:14:14,630 >> Khi bạn có một biến, như trong thêm, chúng ta chỉ cần viết x và y. 254 00:14:14,630 --> 00:14:16,060 Chúng tôi không cần phải nói x là một int. 255 00:14:16,060 --> 00:14:18,940 Chúng tôi không cần phải nói y là một int. 256 00:14:18,940 --> 00:14:21,030 Chúng tôi trở lại với cú pháp tương tự. 257 00:14:21,030 --> 00:14:24,230 Đối với cao, chúng tôi tuyên bố nó với chức năng thay vì void. 258 00:14:24,230 --> 00:14:26,110 Chú ý rằng cho dù nó có giá trị hoặc không có hiệu lực, 259 00:14:26,110 --> 00:14:28,380 nó vẫn còn tất cả các chức năng tương tự. 260 00:14:28,380 --> 00:14:32,440 Và chúng tôi chỉ đơn giản là không đặt bất cứ điều gì trong dấu ngoặc đơn, 261 00:14:32,440 --> 00:14:34,690 và nó trông rất giống với mã C. 262 00:14:34,690 --> 00:14:37,460 Và dưới đây, chúng ta có thể gọi nó bên dưới. 263 00:14:37,460 --> 00:14:42,730 >> Nếu chúng ta nhìn vào ví dụ 4b, chúng tôi nhận thấy rằng tôi đã thay đổi một vài điều. 264 00:14:42,730 --> 00:14:45,340 Điều duy nhất tôi đã thay đổi thực sự mặc dù là thứ tự. 265 00:14:45,340 --> 00:14:47,340 Chúng tôi có cùng một chức năng, nhưng bây giờ họ đang 266 00:14:47,340 --> 00:14:52,200 tuyên bố sau khi chúng được sử dụng trong console.log và cao trên dòng 18, 19. 267 00:14:52,200 --> 00:14:54,740 Nếu bạn đã làm điều này trong C, thực hiện sẽ ném ra một lỗi. 268 00:14:54,740 --> 00:14:56,070 Ở đây, điều này chỉ hoạt động tốt. 269 00:14:56,070 --> 00:15:01,935 Và tôi có thể hiển thị này cho bạn bởi gọi Node trên ví dụ 4b. 270 00:15:01,935 --> 00:15:05,350 271 00:15:05,350 --> 00:15:10,130 >> Một cách khác chúng ta có thể gọi chức năng là bằng cách tiết kiệm năng như các biến. 272 00:15:10,130 --> 00:15:13,790 Giống như tôi đã nói, một biến có thể có bất kỳ loại. 273 00:15:13,790 --> 00:15:16,720 Một trong những loại một biến có thể có là một chức năng. 274 00:15:16,720 --> 00:15:19,800 Vì vậy, nếu bạn nhìn vào ví dụ 4c, những gì tôi đã thay đổi 275 00:15:19,800 --> 00:15:24,320 đây là var thêm thay vì chức năng add. 276 00:15:24,320 --> 00:15:26,807 Và bây giờ thêm bằng một chức năng. 277 00:15:26,807 --> 00:15:28,140 Chức năng này ở đây là vô danh. 278 00:15:28,140 --> 00:15:33,346 Nó không có tên, vì vậy nó chỉ chức năng và sau đó các dấu ngoặc đơn. 279 00:15:33,346 --> 00:15:35,220 Các cú pháp sau đó không thay đổi, nhưng bạn 280 00:15:35,220 --> 00:15:38,300 đừng có để giữ trong tâm trí rằng bạn có một biến mà bạn 281 00:15:38,300 --> 00:15:42,940 lưu trữ các chức năng add vào, và một biến mà bạn đang lưu trữ vào cao. 282 00:15:42,940 --> 00:15:47,620 >> Bởi vì bây giờ cao thêm và là các biến và không chức năng, một cái gì đó thay đổi. 283 00:15:47,620 --> 00:15:50,190 Đây là một lỗi phổ biến mà tôi thấy trong rất nhiều JavaScripts của người dân, 284 00:15:50,190 --> 00:15:52,410 và một cái gì đó để giữ trong tâm trí. 285 00:15:52,410 --> 00:15:54,365 Khi tôi chạy này, chúng ta hãy xem những gì sẽ xảy ra. 286 00:15:54,365 --> 00:15:57,410 287 00:15:57,410 --> 00:15:58,230 Tôi nhận được một lỗi. 288 00:15:58,230 --> 00:16:01,000 Nó nói không xác định vào thời điểm này. 289 00:16:01,000 --> 00:16:03,520 Vì vậy, nó nói nó không biết gì thêm là. 290 00:16:03,520 --> 00:16:06,010 >> Bởi vì bây giờ không nằm trong một chức năng, thêm vào đó là một biến. 291 00:16:06,010 --> 00:16:10,100 Và bạn đã không cung cấp cho thêm một giá trị nào khi bạn sử dụng nó. 292 00:16:10,100 --> 00:16:14,460 Điều đó mang lại cho chúng tôi để dụ 4d, nơi mà nếu bạn muốn sử dụng các biến như các chức năng, 293 00:16:14,460 --> 00:16:17,210 bạn chỉ cần phải chắc chắn rằng họ có giá trị trước khi chúng được sử dụng. 294 00:16:17,210 --> 00:16:20,200 295 00:16:20,200 --> 00:16:23,420 >> Hãy di chuyển để dụ năm sau đó. 296 00:16:23,420 --> 00:16:27,390 Ở đây, chúng ta nói về struct trong C. Trong C, cấu trúc 297 00:16:27,390 --> 00:16:30,320 có cấu trúc cố định này đối với họ bởi vì bạn phải khai báo 298 00:16:30,320 --> 00:16:33,050 trước khi bạn sử dụng nó, và bạn nói rằng tôi có một sinh viên, 299 00:16:33,050 --> 00:16:36,645 và mỗi học sinh có chính xác một tên, một năm, một giới tính. 300 00:16:36,645 --> 00:16:37,770 Nó phải có tất cả chúng. 301 00:16:37,770 --> 00:16:42,280 Nó có thể không có bất kỳ giá trị khác, và họ phải được loại cụ thể. 302 00:16:42,280 --> 00:16:47,540 >> Sau đó, chúng ta có thể khởi tạo struct trong cú pháp này tốt đẹp 303 00:16:47,540 --> 00:16:49,470 bởi vì nó biết thứ tự. 304 00:16:49,470 --> 00:16:51,460 Vì vậy, nó biết rằng Roger là một cái tên. 305 00:16:51,460 --> 00:16:54,060 Nó biết rằng năm 2016 là một năm và M là một giới tính 306 00:16:54,060 --> 00:16:58,200 bởi vì chúng tôi nói với nó điều này danh sách là một sinh viên struct. 307 00:16:58,200 --> 00:17:01,607 Và sau đó bạn có thể in nó, truy cập s.name. 308 00:17:01,607 --> 00:17:03,690 Hãy xem cách chúng tôi sẽ chuyển đổi đó để JavaScript. 309 00:17:03,690 --> 00:17:06,400 310 00:17:06,400 --> 00:17:09,790 Chú ý rằng bây giờ là một là biến, và không có loại. 311 00:17:09,790 --> 00:17:10,920 Nó chỉ là một var nữa. 312 00:17:10,920 --> 00:17:14,480 Bởi vì nó không quan trọng nếu kiểu của biến này là một con trỏ, 313 00:17:14,480 --> 00:17:17,440 nó là một cấu trúc, hoặc bất cứ điều gì khác. 314 00:17:17,440 --> 00:17:19,650 Chúng tôi có một cú pháp hơi khác nhau. 315 00:17:19,650 --> 00:17:21,890 Cú pháp này là cú pháp đối tượng. 316 00:17:21,890 --> 00:17:24,400 >> Bạn có thể đã thấy nó trong JSON. 317 00:17:24,400 --> 00:17:27,780 JSON thực sự là viết tắt của các JavaScript Object Notation. 318 00:17:27,780 --> 00:17:31,240 Đây là cách bạn định nghĩa đối tượng trong JavaScript. 319 00:17:31,240 --> 00:17:34,500 Chúng tôi có một chìa khóa, mà là giá trị, như tên. 320 00:17:34,500 --> 00:17:37,680 Và chúng tôi cung cấp cho nó giá trị trên phía bên kia của đại tràng. 321 00:17:37,680 --> 00:17:41,850 Và một điều cần lưu ý là bạn không cần phải có một cái tên và một năm 322 00:17:41,850 --> 00:17:42,980 và giới tính cho một đối tượng. 323 00:17:42,980 --> 00:17:44,570 Một đối tượng có thể không có giá trị. 324 00:17:44,570 --> 00:17:46,920 Nó có thể có như nhiều như bạn muốn. 325 00:17:46,920 --> 00:17:50,375 >> Chúng tôi có thể sử dụng các đối tượng này chỉ trong cùng một cách mà chúng ta sẽ sử dụng một cấu trúc, s.name. 326 00:17:50,375 --> 00:17:53,810 327 00:17:53,810 --> 00:17:57,080 Chúng tôi có thể chạy nó thực sự nhanh chóng bằng cách làm nút dụ 5.c. 328 00:17:57,080 --> 00:18:00,320 329 00:18:00,320 --> 00:18:02,520 Chúng tôi có thể không thực sự chạy một tập tin C trong Node. 330 00:18:02,520 --> 00:18:03,654 Nó không biết những gì là C. 331 00:18:03,654 --> 00:18:04,695 Nó chỉ biết JavaScript. 332 00:18:04,695 --> 00:18:09,865 Khi chúng tôi chạy ex5.js, chúng tôi nhận được giá trị, mà chúng ta mong đợi. 333 00:18:09,865 --> 00:18:13,490 334 00:18:13,490 --> 00:18:15,980 >> Hãy chuyển sang ví dụ sáu. 335 00:18:15,980 --> 00:18:18,930 Ở đây tôi chỉ muốn nói một chút hơn chút về mảng JavaScript 336 00:18:18,930 --> 00:18:20,930 bởi vì họ là một chút khác so với những gì bạn đang 337 00:18:20,930 --> 00:18:26,940 sử dụng để trong C. Mảng được ký hiệu, không có dấu ngoặc như trong C, 338 00:18:26,940 --> 00:18:28,640 với các dấu ngoặc nhọn, nhưng dấu ngoặc đơn. 339 00:18:28,640 --> 00:18:32,150 Bạn có thể có một mảng trống rỗng, arr như trong dòng bốn. 340 00:18:32,150 --> 00:18:34,680 Bạn có thể có mảng với nhiều giá trị. 341 00:18:34,680 --> 00:18:39,790 Và bạn truy cập chúng chỉ cùng một cách trong C. 342 00:18:39,790 --> 00:18:42,990 >> Up cho dòng bảy, tất cả mọi thứ có vẻ khá đơn giản. 343 00:18:42,990 --> 00:18:45,390 Một sự khác biệt nhỏ là ở đây tại dòng 10. 344 00:18:45,390 --> 00:18:48,620 Cách bạn có được một chiều dài của một mảng chỉ đơn thuần bằng cách gọi .length. 345 00:18:48,620 --> 00:18:50,620 Một mảng có thể thực sự đối xử như một đối tượng, 346 00:18:50,620 --> 00:18:54,960 và đối tượng này có một tài sản dài mà bạn gọi để có được chiều dài của nó. 347 00:18:54,960 --> 00:18:57,350 Chú ý rằng điều này là khác nhau trong C bởi vì trong C bạn 348 00:18:57,350 --> 00:19:01,600 phải biết chiều dài của đối tượng của bạn trước thời hạn. 349 00:19:01,600 --> 00:19:04,700 >> Vì vậy, một điều tốt đẹp về mảng là bạn có thể có các loại khác nhau. 350 00:19:04,700 --> 00:19:07,470 Nếu bạn có một mảng trong C, có là mảng của một giá trị cụ thể, 351 00:19:07,470 --> 00:19:11,900 hoặc một con trỏ struct hoặc nổi hoặc [không nghe được]. 352 00:19:11,900 --> 00:19:13,700 Ở đây, bạn có thể có giá trị khác nhau. 353 00:19:13,700 --> 00:19:17,560 Lần đầu tiên tôi đã có một số điểm nổi, sau đó một Boolean, sau đó một số nguyên. 354 00:19:17,560 --> 00:19:19,670 Và trên thực tế, họ có thể thay đổi loại quá. 355 00:19:19,670 --> 00:19:21,220 Hãy xem dòng 16. 356 00:19:21,220 --> 00:19:26,760 Mảng hai đang thay đổi từ việc một số, một số nguyên, với một chuỗi. 357 00:19:26,760 --> 00:19:30,920 >> Một điều tốt đẹp về mảng là đây tại dòng 19, họ có kích thước vô hạn. 358 00:19:30,920 --> 00:19:35,900 Bạn chỉ có thể nói rằng tôi muốn một trăm yếu tố để là chuỗi legit. 359 00:19:35,900 --> 00:19:38,510 Và điều này dường như không làm cho ý nghĩa bởi vì mảng chỉ 360 00:19:38,510 --> 00:19:41,080 có không gian cho ba yếu tố, để cuối cùng phải có hai. 361 00:19:41,080 --> 00:19:44,800 Nhưng khi bạn làm điều này, chúng ta hãy xem những gì sẽ trở thành ba mảng. 362 00:19:44,800 --> 00:19:47,460 Chúng tôi sẽ chạy một cách nhanh chóng với nút dụ six.js. 363 00:19:47,460 --> 00:19:49,990 364 00:19:49,990 --> 00:19:52,180 Chúng tôi có được điều này thực sự lâu dài mảng, và những gì xảy ra 365 00:19:52,180 --> 00:19:55,100 là chúng tôi có một vài yếu tố đầu tiên và sau đó là một loạt các khoảng trống 366 00:19:55,100 --> 00:19:56,580 cho đến khi chúng ta nhận được chuỗi của chúng tôi. 367 00:19:56,580 --> 00:19:58,580 JavaScript điền vào trong mảng như nó cần thiết. 368 00:19:58,580 --> 00:20:01,790 369 00:20:01,790 --> 00:20:05,420 >> Hãy để cuối cùng đi đến ví dụ cuối cùng của chúng tôi. 370 00:20:05,420 --> 00:20:08,180 Ở đây chúng ta có một danh sách học sinh khác nhau. 371 00:20:08,180 --> 00:20:11,350 Tôi muốn nói một chút chút thông tin về một số khía cạnh đẹp 372 00:20:11,350 --> 00:20:14,240 của cho các vòng trong JavaScript. 373 00:20:14,240 --> 00:20:17,500 Trong C, cho vòng được loại giới hạn. 374 00:20:17,500 --> 00:20:21,490 Họ có một cấu trúc cố định, nơi bạn có một biến, bạn có tình trạng, 375 00:20:21,490 --> 00:20:23,850 và sau đó bạn làm điều gì đó ở phần cuối của vòng lặp. 376 00:20:23,850 --> 00:20:27,560 Và tất nhiên điều này làm việc trong JavaScript, như chúng ta đã thấy trong các ví dụ trước. 377 00:20:27,560 --> 00:20:31,030 Nhưng chúng ta cũng có những cách đẹp hơn làm điều này trong JavaScript. 378 00:20:31,030 --> 00:20:33,870 Điều này được gọi là vòng lặp foreach. 379 00:20:33,870 --> 00:20:36,580 >> Xin lỗi, chúng ta hãy quay trở lại để dụ bảy ở đây. 380 00:20:36,580 --> 00:20:39,320 Chúng tôi cũng có thể nói phần là một danh sách. 381 00:20:39,320 --> 00:20:43,250 Vì vậy, cho tôi mỗi i hay mỗi chỉ số trong danh sách đó. 382 00:20:43,250 --> 00:20:46,255 Sau đó, chúng ta có thể nhận được các sinh viên bởi chỉ cần gọi phần của tôi. 383 00:20:46,255 --> 00:20:50,690 Vì vậy, tất cả các mã của thiết i bằng không và đảm bảo i 384 00:20:50,690 --> 00:20:54,420 là ít hơn so với chiều dài và thêm một đến i mọi thời gian, đó là 385 00:20:54,420 --> 00:21:00,220 chăm sóc của bạn chứ không phải độc đáo với vòng lặp foreach này. 386 00:21:00,220 --> 00:21:02,830 >> Không chỉ làm vòng foreach làm việc trong danh sách hoặc mảng, 387 00:21:02,830 --> 00:21:06,130 họ cũng làm việc trong các đối tượng, đó cũng là tốt đẹp. 388 00:21:06,130 --> 00:21:10,240 Bạn có thể lấy tên của mỗi tài sản bằng cách ôm 389 00:21:10,240 --> 00:21:15,030 một từ điển hay một đối tượng, như sinh viên, và sau đó chỉ cần nói cho tôi mỗi phím. 390 00:21:15,030 --> 00:21:18,920 Một khóa sẽ là những tài sản, tên hay nhà ở. 391 00:21:18,920 --> 00:21:22,870 Vì vậy, những gì sẽ xảy ra ở đây là chúng tôi in ra đầu tiên tên và sau đó 392 00:21:22,870 --> 00:21:24,920 nhà của mỗi học sinh. 393 00:21:24,920 --> 00:21:29,170 >> Tôi có thể chạy trong Node thực sự nhanh chóng cho bạn. 394 00:21:29,170 --> 00:21:35,510 Chúng tôi nhận được đầu tiên theo phong cách C cho vòng lặp, nơi chúng tôi nhận được mỗi đối tượng được in ra. 395 00:21:35,510 --> 00:21:38,910 Và sau đó chúng ta có JavaScript phong cách, nơi bạn có thể chỉ 396 00:21:38,910 --> 00:21:41,510 in ra mỗi phím và giá trị cá nhân. 397 00:21:41,510 --> 00:21:45,560 398 00:21:45,560 --> 00:21:47,050 >> Được rồi. 399 00:21:47,050 --> 00:21:52,850 Bây giờ chúng ta đề cập Node.js, tôi nghĩ chúng tôi đã sẵn sàng để bắt đầu với Meteor. 400 00:21:52,850 --> 00:21:56,070 Giống như tôi đã nói, Meteor đã làm một công việc tuyệt vời viết một số ví dụ làm sẵn 401 00:21:56,070 --> 00:22:00,600 cho bạn biết rằng bạn có thể khám phá thông qua hướng dẫn này hoặc trong các thư mục thảo. 402 00:22:00,600 --> 00:22:03,750 Nhưng ở đây tôi muốn bắt đầu nhiều từ đầu. 403 00:22:03,750 --> 00:22:06,810 >> Hãy tạo ra một ứng dụng đơn giản để làm. 404 00:22:06,810 --> 00:22:14,140 Đây là loại của các cơ sở của những gì để làm ứng dụng đã được nói đến là. 405 00:22:14,140 --> 00:22:16,990 Trong hướng dẫn này, bạn sẽ thấy rằng có 406 00:22:16,990 --> 00:22:20,180 Meteor một lệnh để tạo ra tạo ra một dự án mới Meteor. 407 00:22:20,180 --> 00:22:24,510 Bạn cần phải gọi này để để chạy dự án Meteor vì nó 408 00:22:24,510 --> 00:22:27,470 sẽ chạy các lệnh để tạo ra các Meteor 409 00:22:27,470 --> 00:22:31,100 tập tin cần thiết cho dự án của bạn. 410 00:22:31,100 --> 00:22:35,920 >> Nếu bạn đi vào các thiết bị đầu cuối, chúng ta có thể đi vào thư mục gọi là bước một. 411 00:22:35,920 --> 00:22:41,240 Và bước một sẽ tương ứng với bước đầu tiên trong hướng dẫn. 412 00:22:41,240 --> 00:22:44,020 Thông báo có thư mục, bước một, bước hai, tất cả các cách đến năm. 413 00:22:44,020 --> 00:22:47,835 Và mỗi người tương ứng để một bước trong hướng dẫn này. 414 00:22:47,835 --> 00:22:50,960 415 00:22:50,960 --> 00:22:52,780 Tôi sẽ mở nó trong trình soạn thảo văn bản của tôi ở đây 416 00:22:52,780 --> 00:22:56,280 vì vậy chúng tôi có thể nhìn thấy một chút về những gì đã được tạo ra. 417 00:22:56,280 --> 00:22:58,530 Chúng tôi nhận thấy rằng có bốn phần chính. 418 00:22:58,530 --> 00:23:01,170 Có một thư mục Meteor, .meteor. 419 00:23:01,170 --> 00:23:03,180 Và bạn thường không cần phải chạm vào. 420 00:23:03,180 --> 00:23:05,070 Meteor chăm sóc thư mục đó, và nó chỉ 421 00:23:05,070 --> 00:23:08,640 làm cho chắc chắn rằng bạn dự án sẽ làm việc một cách chính xác. 422 00:23:08,640 --> 00:23:14,580 >> Chúng tôi cũng có ba file, một file HTML, một tập tin JavaScript, và một file CSS. 423 00:23:14,580 --> 00:23:18,670 Đầu tiên chúng ta bắt đầu với các tập tin HTML. 424 00:23:18,670 --> 00:23:21,310 Ngay từ cái nhìn đầu tiên, điều này có vẻ như một tài liệu HTML bình thường. 425 00:23:21,310 --> 00:23:23,490 Nhưng cần chú ý rằng có là một vài sự khác biệt. 426 00:23:23,490 --> 00:23:26,520 One, đây không phải là thực sự một tài liệu HTML đầy đủ. 427 00:23:26,520 --> 00:23:28,640 Chúng ta đang thiếu các thẻ HTML. 428 00:23:28,640 --> 00:23:29,700 Điều này là bình thường. 429 00:23:29,700 --> 00:23:33,560 Trong Meteor, bạn không mong đợi để tạo ra các thẻ HTML. 430 00:23:33,560 --> 00:23:35,260 Điều đó làm cho bạn. 431 00:23:35,260 --> 00:23:38,380 Bạn muốn begin-- nếu bạn muốn tạo ra một trang web, 432 00:23:38,380 --> 00:23:40,430 bạn chỉ cần bắt đầu với các từ khóa đầu, 433 00:23:40,430 --> 00:23:43,510 xác định điều đó, và sau đó xác định các tag cơ thể. 434 00:23:43,510 --> 00:23:48,940 >> Nhưng nếu bạn thông báo trong này Tập tin HTML, chúng ta có một thẻ mới. 435 00:23:48,940 --> 00:23:50,350 Chúng tôi có thẻ mẫu. 436 00:23:50,350 --> 00:23:52,050 Đây không phải là HTML thông thường. 437 00:23:52,050 --> 00:23:55,300 Đây là một phiên bản đặc biệt của HTML Meteor mà làm cho có sẵn cho bạn. 438 00:23:55,300 --> 00:23:57,660 Nó được gọi là các thanh không gian. 439 00:23:57,660 --> 00:24:00,980 Bạn có thể định nghĩa các mẫu ít mô-đun, giống như chức năng trợ giúp, 440 00:24:00,980 --> 00:24:03,660 trong C hoặc mã JavaScript. 441 00:24:03,660 --> 00:24:06,020 Mẫu này sẽ có tên gọi là nhiệm vụ. 442 00:24:06,020 --> 00:24:10,520 Và bạn có thể thấy ngay trên đường 13 bạn có thể gọi những mẫu này. 443 00:24:10,520 --> 00:24:14,380 Và những gì Meteor sẽ làm chỉ là điền vào các nhiệm vụ cho bạn. 444 00:24:14,380 --> 00:24:17,540 445 00:24:17,540 --> 00:24:22,580 >> Một điều bạn có thể nhận thấy là một bit khác nhau này là mỗi chức năng. 446 00:24:22,580 --> 00:24:26,130 Mỗi người sẽ có những biến nhiệm vụ và loại đi qua nó 447 00:24:26,130 --> 00:24:28,810 trong đó foreach vòng lặp chúng tôi thấy trong ví dụ bảy. 448 00:24:28,810 --> 00:24:34,200 Điều này có thể mất mỗi một từ điển hoặc một danh sách, một đối tượng hoặc một danh sách, 449 00:24:34,200 --> 00:24:38,820 và nó sẽ chỉ đi qua tất cả các giá trị như một vòng lặp foreach sẽ. 450 00:24:38,820 --> 00:24:44,110 Vì vậy, nếu chúng tôi có một loạt các nhiệm vụ, điều này sẽ gọi các mẫu trên mỗi công việc. 451 00:24:44,110 --> 00:24:49,590 >> Hãy chạy các dự án Meteor chỉ để thấy rằng điều này sẽ xảy ra. 452 00:24:49,590 --> 00:24:53,260 Tôi chạy các dự án với Meteor chỉ Meteor hoặc Meteor chạy. 453 00:24:53,260 --> 00:24:56,690 Và bây giờ Meteor sẽ chỉ cần để nhanh chóng chuẩn bị dự án, 454 00:24:56,690 --> 00:25:03,320 bắt đầu các cơ sở dữ liệu khi cần thiết, và sau đó gửi các ứng dụng tại địa phương. 455 00:25:03,320 --> 00:25:07,200 Chúng tôi có thể vào trình duyệt web của chúng tôi bây giờ. 456 00:25:07,200 --> 00:25:10,215 Và chúng ta sẽ thấy rằng chúng ta có một ứng dụng rất đơn giản. 457 00:25:10,215 --> 00:25:22,190 458 00:25:22,190 --> 00:25:29,130 Vì vậy, những gì chúng ta đã thấy xuất hiện đã thực sự bước một, bước một tập tin. 459 00:25:29,130 --> 00:25:33,260 >> Chúng ta hãy chuyển sang bước hai chỉ vì Tôi nghĩ rằng nó sẽ phục vụ cùng một mục đích. 460 00:25:33,260 --> 00:25:36,500 Tôi chỉ cần đi để thay đổi sang bước hai thư mục 461 00:25:36,500 --> 00:25:39,550 và chạy Meteor lần nữa vì vậy chúng tôi có thể nhìn thấy các mẫu chúng tôi chỉ làm việc với. 462 00:25:39,550 --> 00:25:43,560 463 00:25:43,560 --> 00:25:45,730 Vâng, một câu hỏi? 464 00:25:45,730 --> 00:25:49,724 >> Đung Nếu chúng ta đang nhận được sự cho phép bị từ chối, là that-- đó là những gì 465 00:25:49,724 --> 00:25:50,390 gọi cho điều đó? 466 00:25:50,390 --> 00:25:52,154 467 00:25:52,154 --> 00:25:54,070 ROGER ZURAWICKI: Nếu bạn đang chạy Meteor chạy, 468 00:25:54,070 --> 00:25:57,280 và bạn có quyền bị từ chối, một số tập tin của bạn 469 00:25:57,280 --> 00:25:59,070 có thể không có sự cho phép thiết lập đúng. 470 00:25:59,070 --> 00:26:03,970 Vì vậy, bạn phải kiểm tra nơi có quyền hạn ra. 471 00:26:03,970 --> 00:26:06,030 Họ có thể được tắt trong dự án Meteor của bạn, 472 00:26:06,030 --> 00:26:08,550 hoặc họ có thể được tắt trong Meteor tập tin bản thân. 473 00:26:08,550 --> 00:26:13,742 >> Đung Nếu tôi tải về nó ngay bây giờ từ GitHub của bạn, sau đó tôi nên làm gì 474 00:26:13,742 --> 00:26:16,110 [Không nghe thấy]? 475 00:26:16,110 --> 00:26:20,110 >> ROGER ZURAWICKI: Nếu bạn muốn để chắc chắn rằng bạn có thể truy cập vào nó, 476 00:26:20,110 --> 00:26:21,450 có một lệnh, bạn có thể chạy. 477 00:26:21,450 --> 00:26:26,590 Hãy để tôi viết nó ra một cách nhanh chóng để người khác có thể nhìn thấy nó. 478 00:26:26,590 --> 00:26:30,670 Tôi sẽ mở một tab mới đây và đi vào thư mục hội thảo của tôi. 479 00:26:30,670 --> 00:26:33,500 480 00:26:33,500 --> 00:26:36,490 Chmod là lệnh để thay đổi điều khoản, 481 00:26:36,490 --> 00:26:40,060 và bạn có thể nói cho r làm điều đó đệ quy cho mỗi tập tin. 482 00:26:40,060 --> 00:26:46,040 Và khoản, bạn có thể thử 0755 để chắc chắn rằng bạn có quyền truy cập đầy đủ, 483 00:26:46,040 --> 00:26:47,820 và những người khác có thể đọc. 484 00:26:47,820 --> 00:26:50,100 Và nếu bạn chỉ cần chạy lệnh này, nó sẽ làm cho 485 00:26:50,100 --> 00:26:55,800 chắc chắn có quyền hạn trong kiểm tra toàn bộ thư mục. 486 00:26:55,800 --> 00:26:59,160 Chạy ls-l có thể hiển thị cho bạn quyền chi tiết hơn. 487 00:26:59,160 --> 00:27:01,290 Điều này có vẻ OK. 488 00:27:01,290 --> 00:27:03,900 >> Có gì quan trọng nhất là rằng bạn có tất cả ba 489 00:27:03,900 --> 00:27:06,610 rwx cho tất cả các tập tin trong các thư mục thảo. 490 00:27:06,610 --> 00:27:09,415 491 00:27:09,415 --> 00:27:11,330 Điều đó có giải quyết vấn đề? 492 00:27:11,330 --> 00:27:13,735 >> Đung Nó nói mất tích operant [không nghe được]. 493 00:27:13,735 --> 00:27:17,980 494 00:27:17,980 --> 00:27:18,740 [Không nghe thấy] 495 00:27:18,740 --> 00:27:20,490 ROGER ZURAWICKI: Bạn phải chắc chắn rằng bạn 496 00:27:20,490 --> 00:27:23,022 có một dấu chấm ở cuối lệnh của bạn. 497 00:27:23,022 --> 00:27:23,938 Đung [không nghe được]. 498 00:27:23,938 --> 00:27:36,395 499 00:27:36,395 --> 00:27:37,520 ROGER ZURAWICKI: Được rồi. 500 00:27:37,520 --> 00:27:42,220 Hãy để chúng tôi nhanh chóng quay trở lại chủ của địa phương, các ứng dụng chúng tôi có. 501 00:27:42,220 --> 00:27:46,640 Và bạn sẽ thấy rằng chúng ta có một vài nhiệm vụ ở đây, như mong đợi. 502 00:27:46,640 --> 00:27:49,330 503 00:27:49,330 --> 00:27:51,990 Chúng tôi có một loạt các CSS, mà bạn không cần phải lo lắng. 504 00:27:51,990 --> 00:27:53,740 The Meteor hướng dẫn chỉ cho phép này để bạn 505 00:27:53,740 --> 00:27:58,010 để làm cho bạn để làm danh sách một cái nhìn chút đẹp hơn đồng bằng HTML. 506 00:27:58,010 --> 00:28:02,290 Và chúng ta có file JavaScript, mà Tôi sẽ đi vào chi tiết hơn một chút sau đó, 507 00:28:02,290 --> 00:28:04,272 nhưng nó chỉ cung cấp những công việc này. 508 00:28:04,272 --> 00:28:04,980 Đây là công việc làm một. 509 00:28:04,980 --> 00:28:05,740 Đây là nhiệm vụ hai. 510 00:28:05,740 --> 00:28:06,590 Đây là nhiệm vụ ba. 511 00:28:06,590 --> 00:28:09,720 Vì vậy, đây là số liệu của Meteor nhận. 512 00:28:09,720 --> 00:28:15,590 >> Một trong những điều thú vị về Meteor là rằng những thay đổi có thể xảy ra tự động. 513 00:28:15,590 --> 00:28:18,990 Nếu tôi muốn thay đổi tên của nhiệm vụ đầu tiên, 514 00:28:18,990 --> 00:28:22,490 do đó, nó sẽ nói điều này không phải là nhiệm vụ một, và tôi lưu nó, 515 00:28:22,490 --> 00:28:26,370 sau đó khi tôi đi đến web trình duyệt, bạn có thể làm mới nó, 516 00:28:26,370 --> 00:28:30,861 và nó sẽ tự động nói đây không phải là có thể thao tác một. 517 00:28:30,861 --> 00:28:32,860 Bạn có thể làm điều tương tự trong bất kỳ của những tập tin này. 518 00:28:32,860 --> 00:28:37,940 Thực hiện một sự thay đổi, thay vì phải làm danh sách, tôi sẽ có nó tôi để làm danh sách. 519 00:28:37,940 --> 00:28:40,980 >> Và một điều bạn chỉ nhận thấy, mà tôi thậm chí không cần phải làm mới. 520 00:28:40,980 --> 00:28:43,960 Ý tưởng làm mới là loại của giải quyết cho bạn với Meteor. 521 00:28:43,960 --> 00:28:48,970 Bất cứ khi nào nó phát hiện những thay đổi tập tin, nó sẽ tải các thay đổi cho bạn. 522 00:28:48,970 --> 00:28:53,110 Điều này hoạt động trên tất cả các file, cho dù đó là HTML, CSS, JavaScript hay. 523 00:28:53,110 --> 00:28:57,990 Để hiển thị cho bạn những gì ứng dụng này sẽ xem xét như không có CSS, tôi có thể loại bỏ tất cả. 524 00:28:57,990 --> 00:29:04,720 Và khi nó được nạp lại, bây giờ bạn có một không phải là tốt đẹp, tìm cách để làm danh sách. 525 00:29:04,720 --> 00:29:06,370 Hãy đặt nội dung trở lại. 526 00:29:06,370 --> 00:29:11,343 Và chắc chắn đủ, nó làm mới, và CSS của chúng tôi là trở lại. 527 00:29:11,343 --> 00:29:11,843 Tuyệt vời. 528 00:29:11,843 --> 00:29:15,700 529 00:29:15,700 --> 00:29:20,010 >> Bây giờ chúng ta có thể di chuyển trên với hướng dẫn. 530 00:29:20,010 --> 00:29:23,360 Hãy nói về bước hai, mẫu. 531 00:29:23,360 --> 00:29:27,140 Đây là những gì chúng ta chỉ nhìn thấy với những nhiệm vụ khác nhau. 532 00:29:27,140 --> 00:29:31,550 Meteor sẽ giải thích cho bạn những gì các mẫu và cách logic này hoạt động. 533 00:29:31,550 --> 00:29:34,760 Nhưng chúng ta hãy nhìn vào các mã để xem nếu chúng ta có thể làm cho ý nghĩa của nó. 534 00:29:34,760 --> 00:29:38,030 535 00:29:38,030 --> 00:29:41,460 >> Trong các ứng dụng rất đơn giản, giống như những gì chúng tôi có trong đơn giản 536 00:29:41,460 --> 00:29:44,550 để làm, bước một, bước hai, bước ba, bốn bước, bước năm, 537 00:29:44,550 --> 00:29:45,700 chúng tôi không có bất kỳ thư mục. 538 00:29:45,700 --> 00:29:47,533 Chúng tôi không có máy chủ thư mục tôi đã đề cập. 539 00:29:47,533 --> 00:29:50,510 Chúng tôi không có khách hàng thư mục đã được đề cập. 540 00:29:50,510 --> 00:29:52,290 Vì vậy, Meteor sẽ chạy tất cả các file. 541 00:29:52,290 --> 00:29:55,210 Nó sẽ chạy trên cả các khách hàng, cả trên máy chủ. 542 00:29:55,210 --> 00:29:58,840 >> Và nếu bạn muốn phần của JavaScript mã để chạy chỉ trên máy khách, 543 00:29:58,840 --> 00:30:02,350 họ cần phải chắc chắn rằng bạn có một tuyên bố nếu, giống như những gì 544 00:30:02,350 --> 00:30:04,890 chúng tôi có trong tập tin JavaScript của chúng tôi ở đây. 545 00:30:04,890 --> 00:30:08,010 Vì vậy, Meteor, chỉ khi đó là khách hàng, sau đó tôi 546 00:30:08,010 --> 00:30:12,355 muốn xác định một mẫu helper được gọi là nhiệm vụ. 547 00:30:12,355 --> 00:30:15,050 548 00:30:15,050 --> 00:30:19,260 Những mã này thực sự không có gì nó nói có 549 00:30:19,260 --> 00:30:21,800 một đối tượng gọi là template Meteor cung cấp. 550 00:30:21,800 --> 00:30:23,270 Và chúng ta sẽ thêm một người trợ giúp. 551 00:30:23,270 --> 00:30:27,680 Helpers là những nhiệm vụ, những điều này như các nhiệm vụ. 552 00:30:27,680 --> 00:30:33,890 >> Bạn sẽ thấy rằng nếu chúng ta quay trở lại Tập tin HTML, chúng tôi gọi nhau về nhiệm vụ. 553 00:30:33,890 --> 00:30:35,750 Nhiệm vụ không được định nghĩa trong HTML. 554 00:30:35,750 --> 00:30:37,770 Nó được định nghĩa trong JavaScript. 555 00:30:37,770 --> 00:30:42,610 Và Meteor cần biết là nhiệm vụ gì khi chúng ta đi vào JavaScript đây. 556 00:30:42,610 --> 00:30:45,550 Nhiệm vụ là helper này. 557 00:30:45,550 --> 00:30:49,830 Helper, bạn có thể nghĩ nó như là một biến mẫu. 558 00:30:49,830 --> 00:30:51,000 Và điều đó làm nhiệm vụ? 559 00:30:51,000 --> 00:30:53,580 Vâng, nó sẽ trả về danh sách các giá trị. 560 00:30:53,580 --> 00:30:56,750 Bởi vì đó là một danh sách, chúng ta có thể gọi nhau trong đó. 561 00:30:56,750 --> 00:30:58,590 Vì vậy, đó là lý do tại sao chúng tôi gọi nhau về nhiệm vụ. 562 00:30:58,590 --> 00:30:59,730 Và bây giờ chúng tôi có nhiệm vụ. 563 00:30:59,730 --> 00:31:02,850 564 00:31:02,850 --> 00:31:03,990 >> Không việc làm những gì? 565 00:31:03,990 --> 00:31:07,740 Vâng, nó có mũi tên này ở đây sau khi các dấu ngoặc nhọn. 566 00:31:07,740 --> 00:31:09,130 Điều đó có nghĩa là nhiệm vụ là một bản mẫu. 567 00:31:09,130 --> 00:31:11,100 Nó không phải là một người trợ giúp, giống như những gì chúng ta vừa thấy. 568 00:31:11,100 --> 00:31:12,872 Đó là một mẫu chúng ta đã xác định. 569 00:31:12,872 --> 00:31:14,080 Và nơi mà chúng ta đã định nghĩa nó? 570 00:31:14,080 --> 00:31:16,950 Chúng tôi đã xác định dưới đây ngay tại đây. 571 00:31:16,950 --> 00:31:21,160 >> Tất cả mẫu này không có gì làm một mục danh sách, và nó gọi văn bản. 572 00:31:21,160 --> 00:31:24,160 Bây giờ, văn bản có vẻ là một helper, nhưng tôi sẽ cho bạn thấy 573 00:31:24,160 --> 00:31:26,610 rằng điều này là thực sự vẫn còn một thành viên dữ liệu của nhiệm vụ. 574 00:31:26,610 --> 00:31:29,230 575 00:31:29,230 --> 00:31:33,670 Khi bạn gọi nhau, nó đi vào cấu trúc dữ liệu một chút. 576 00:31:33,670 --> 00:31:39,130 Cũng giống như các vòng lặp foreach, nó bây giờ chỉ trông tại phần tử đầu tiên trong đối tượng của chúng tôi. 577 00:31:39,130 --> 00:31:41,850 Chúng ta thấy rằng văn bản là định nghĩa ở đây trong đối tượng của chúng tôi. 578 00:31:41,850 --> 00:31:45,350 Vì vậy, Meteor là thông minh để biết rằng chúng ta đang nói về văn bản này, 579 00:31:45,350 --> 00:31:47,630 không phải là helper gọi văn bản. 580 00:31:47,630 --> 00:31:52,120 Nó chỉ được giá trị của việc này văn bản ở đây và nó sẽ hiển thị như HTML, 581 00:31:52,120 --> 00:31:55,475 và đó là cách các dữ liệu đi từ JavaScript với HTML. 582 00:31:55,475 --> 00:32:03,320 583 00:32:03,320 --> 00:32:07,030 >> Di chuyển trên mặc dù, trong ví dụ này chúng tôi cứng mã hoá những giá trị. 584 00:32:07,030 --> 00:32:10,440 Meteor hiện hai thực sự những điều tốt đẹp cho chúng ta. 585 00:32:10,440 --> 00:32:15,050 Bên cạnh việc làm mới sống mà chúng ta cho thấy, nó còn quản lý cơ sở dữ liệu của chúng tôi. 586 00:32:15,050 --> 00:32:18,750 Nếu bạn phải làm việc với PHP, bạn phải cấu hình phpMyAdmin. 587 00:32:18,750 --> 00:32:21,320 Bạn phải chắc chắn rằng bạn bảng đều trong tầm kiểm soát. 588 00:32:21,320 --> 00:32:24,760 Bạn đã phải làm rất nhiều công việc để làm đảm bảo dữ liệu của bạn đã được định dạng chính xác, 589 00:32:24,760 --> 00:32:27,880 PHP và có thể giao tiếp với nó. 590 00:32:27,880 --> 00:32:30,170 >> Bây giờ, Meteor sử dụng một mô hình mới. 591 00:32:30,170 --> 00:32:32,310 Đây là một cách hiện đại hơn xử lý một cơ sở dữ liệu. 592 00:32:32,310 --> 00:32:34,580 Đó là một công nghệ gọi là MongoDB. 593 00:32:34,580 --> 00:32:38,740 Cũng giống như trong JavaScript, chúng ta đã thấy rằng nó không có vấn đề gì loại các dữ liệu đã có. 594 00:32:38,740 --> 00:32:39,640 Tất cả mọi thứ là một var. 595 00:32:39,640 --> 00:32:40,570 Nó không phải là một charstar. 596 00:32:40,570 --> 00:32:40,930 Nó không phải là một int. 597 00:32:40,930 --> 00:32:41,970 Nó không phải là một cấu trúc. 598 00:32:41,970 --> 00:32:44,210 Đó chỉ là var này, var. 599 00:32:44,210 --> 00:32:46,320 >> MongoDB cũng hoạt động theo cùng một cách. 600 00:32:46,320 --> 00:32:48,160 Bạn không cần phải xác định các bảng của bạn. 601 00:32:48,160 --> 00:32:50,860 Bạn không cần phải nói một bảng có một cái tên, trong đó có một int. 602 00:32:50,860 --> 00:32:54,710 Nó có, tôi không biết, một đồng đô la, đó là một số thập phân. 603 00:32:54,710 --> 00:32:58,360 Nó chỉ là những đối tượng JavaScript, tất cả các vars, về cơ bản. 604 00:32:58,360 --> 00:33:02,780 Và đây là một thực sự mạnh mẽ cách để chế tạo thử nghiệm ứng dụng của bạn. 605 00:33:02,780 --> 00:33:06,190 Và đó là lý do tại sao Meteor lợi dụng điều này. 606 00:33:06,190 --> 00:33:11,080 >> Nếu chúng ta đi đến bước ba, chúng ta hãy xem những gì đã thay đổi. 607 00:33:11,080 --> 00:33:15,480 Nếu chúng ta nhìn vào các todos HTML, không nhiều. 608 00:33:15,480 --> 00:33:17,170 CSS đã không thay đổi ở tất cả. 609 00:33:17,170 --> 00:33:22,420 Nhưng sự thay đổi nhỏ, chúng tôi nhìn thấy trong HTML là chúng tôi đã thay đổi như thế nào nhiệm vụ được xác định. 610 00:33:22,420 --> 00:33:23,800 Nhiệm vụ bây giờ là một chức năng. 611 00:33:23,800 --> 00:33:25,800 Điều đó có nghĩa là mỗi Hiện chúng tôi muốn nhận được nhiệm vụ, 612 00:33:25,800 --> 00:33:27,480 chúng tôi đang đi để chạy chức năng này. 613 00:33:27,480 --> 00:33:29,230 Nó không trả lại chức năng như một giá trị. 614 00:33:29,230 --> 00:33:33,710 >> Meteor là thông minh để thực sự chạy chức năng để xem những gì chúng tôi nhận ra. 615 00:33:33,710 --> 00:33:36,650 Và nó sẽ trả về điều này được gọi là nhiệm vụ. 616 00:33:36,650 --> 00:33:40,650 Chúng tôi đã xác định nhiệm vụ trên một dòng, và đó là một bộ sưu tập Mongo. 617 00:33:40,650 --> 00:33:43,170 Mongo là đề cập đến cơ sở dữ liệu sử dụng Meteor, 618 00:33:43,170 --> 00:33:48,420 và mới này chỉ có nghĩa là chúng ta hãy làm một bộ sưu tập mới, gọi nó là nhiệm vụ. 619 00:33:48,420 --> 00:33:53,540 Trong MySQL, điều này sẽ tương đương với tìm kiếm các bảng gọi là nhiệm vụ. 620 00:33:53,540 --> 00:33:56,350 Mongo có bộ sưu tập, không bàn. 621 00:33:56,350 --> 00:34:00,100 Vì vậy, đây chỉ trông cho nhiệm vụ. 622 00:34:00,100 --> 00:34:04,820 >> Bây giờ, mẫu trong chúng tôi helper trong template, tất cả 623 00:34:04,820 --> 00:34:08,380 chúng ta phải làm gì để có được tất cả các nhiệm vụ được chức năng này, hãy tìm 624 00:34:08,380 --> 00:34:11,710 và cú đúp trống này. 625 00:34:11,710 --> 00:34:14,150 Điều này là đặc biệt hơn với Mongo cú pháp. 626 00:34:14,150 --> 00:34:16,159 Có rất nhiều tài liệu trực tuyến như thế nào 627 00:34:16,159 --> 00:34:19,360 bạn có thể thực hiện hiệu quả và thực sự hữu ích Mongo truy vấn. 628 00:34:19,360 --> 00:34:25,560 Nhưng một cái gì đó như thế này là tốt đủ để chỉ việc tìm kiếm tất cả các dữ liệu. 629 00:34:25,560 --> 00:34:30,100 >> Bây giờ, một trong những vấn đề mà bạn có thể nhìn thấy là chúng ta không bao giờ thực sự thêm dữ liệu. 630 00:34:30,100 --> 00:34:35,020 Vì vậy, những gì sẽ xảy ra khi chúng ta thực sự chạy bước thứ ba? 631 00:34:35,020 --> 00:34:37,550 Hãy nhanh chóng đi vào bước ba và chạy Meteor. 632 00:34:37,550 --> 00:34:42,870 633 00:34:42,870 --> 00:34:45,650 Chú ý rằng tôi đã có một Meteor dự án đang chạy ở một nơi khác, 634 00:34:45,650 --> 00:34:49,110 nên Meteor không thích điều đó. 635 00:34:49,110 --> 00:34:52,810 Tôi chỉ cần đi để nhanh chóng gần Meteor khác với điều khiển C, 636 00:34:52,810 --> 00:34:55,780 đi vào bước thứ ba, và chạy Meteor lại. 637 00:34:55,780 --> 00:35:01,070 638 00:35:01,070 --> 00:35:03,180 Chú ý nó bắt đầu MongoDB vì MongoDB 639 00:35:03,180 --> 00:35:06,370 là một phần của mỗi dự án Meteor. 640 00:35:06,370 --> 00:35:09,190 >> Vì vậy, nó nói ứng dụng của tôi có lỗi. 641 00:35:09,190 --> 00:35:10,590 Đó là một tính năng đẹp Meteor có. 642 00:35:10,590 --> 00:35:13,700 Nó đảm bảo của bạn HTML cũng được xác nhận. 643 00:35:13,700 --> 00:35:17,710 Hãy nhanh chóng xem xét tại sao điều này có thể được. 644 00:35:17,710 --> 00:35:26,110 Có vẻ như tôi đã vô tình sao chép mã HTML sai. 645 00:35:26,110 --> 00:35:30,610 Nếu tôi lưu ngay bây giờ, Meteor tự động khởi động lại máy chủ, 646 00:35:30,610 --> 00:35:34,650 và bây giờ các ứng dụng đang chạy như mong đợi. 647 00:35:34,650 --> 00:35:39,220 Chú ý để khắc phục điều này, bạn chỉ có thể chạy các tập tin HTML tương tự từ bước hai, 648 00:35:39,220 --> 00:35:40,380 sao chép nó vào bước thứ ba. 649 00:35:40,380 --> 00:35:43,290 650 00:35:43,290 --> 00:35:45,917 >> Chúng tôi có thể quay trở lại để lưu trữ địa phương của chúng tôi. 651 00:35:45,917 --> 00:35:47,500 Và bây giờ chúng ta thấy, chúng ta có của chúng tôi để làm danh sách. 652 00:35:47,500 --> 00:35:50,070 Tuyệt vời, nhưng nó trống. 653 00:35:50,070 --> 00:35:54,210 Chúng tôi không thực sự có bất kỳ nhiệm vụ trong cơ sở dữ liệu của chúng tôi Mongo. 654 00:35:54,210 --> 00:35:57,930 Vì vậy, chúng ta hãy nói về một vài cách chúng ta có thể làm điều đó. 655 00:35:57,930 --> 00:36:03,240 Nếu chúng ta trở lại những thiết bị đầu cuối, chúng tôi có thể đóng nó và chạy Meteor Mongo. 656 00:36:03,240 --> 00:36:05,320 >> Nếu bạn đang quen thuộc với cách làm việc Meteor, 657 00:36:05,320 --> 00:36:14,100 này cho phép bạn có quyền truy cập đến MongoDB đầy đủ cho Meteor. 658 00:36:14,100 --> 00:36:17,570 Chú ý rằng bạn phải chạy Sao băng đầu tiên để làm việc này. 659 00:36:17,570 --> 00:36:23,840 Vì vậy, nếu tôi chạy trong một tab mới, tôi có thể quay trở lại để cùng một thư mục. 660 00:36:23,840 --> 00:36:29,040 661 00:36:29,040 --> 00:36:32,570 Và bây giờ Meteor chỉ hoạt động tốt. 662 00:36:32,570 --> 00:36:33,600 Đây là một dấu nhắc. 663 00:36:33,600 --> 00:36:36,350 664 00:36:36,350 --> 00:36:38,790 Hãy để tôi làm cho nó một chút lớn hơn vì vậy chúng tôi có thể nhìn thấy. 665 00:36:38,790 --> 00:36:41,550 Điều này có vẻ hơi khác so với những gì bạn có thể được sử dụng để bạn 666 00:36:41,550 --> 00:36:42,869 không thực sự cần phải sử dụng Mongo. 667 00:36:42,869 --> 00:36:45,410 Điểm chung của tôi ở đây là để bạn có thể sử dụng JavaScript. 668 00:36:45,410 --> 00:36:48,250 Nhưng nếu bạn đang tò mò, API Mongo không 669 00:36:48,250 --> 00:36:50,730 sử dụng SQL, truy vấn cấu trúc ngôn ngữ. 670 00:36:50,730 --> 00:36:55,570 Nó sử dụng ngôn ngữ riêng của mình mà trông rất giống JavaScript. 671 00:36:55,570 --> 00:37:00,520 Rất nhanh chóng, chúng ta có thể tìm thấy bảng qua db.tasks. 672 00:37:00,520 --> 00:37:08,940 Và nó nói với tôi Hóa ra nếu chúng ta chạy tìm, 673 00:37:08,940 --> 00:37:13,450 loại tương tự như những gì chúng ta đã có với Meteor, chúng ta có thể tải tất cả các yếu tố. 674 00:37:13,450 --> 00:37:17,330 Vấn đề là, chúng ta không thực sự có bất kỳ nhiệm vụ quy định. 675 00:37:17,330 --> 00:37:20,600 Vì vậy, nó không thể có được chúng. 676 00:37:20,600 --> 00:37:22,130 >> Chúng tôi có thể chèn, mặc dù. 677 00:37:22,130 --> 00:37:25,170 Vì vậy, chúng ta có thể chạy chèn với lệnh insert. 678 00:37:25,170 --> 00:37:29,140 Và chúng ta chỉ cần cho nó một đối tượng, và chúng tôi chỉ 679 00:37:29,140 --> 00:37:31,840 đảm bảo định dạng là những gì chúng tôi mong đợi. 680 00:37:31,840 --> 00:37:35,030 Nếu chúng ta nhìn vào bước hai, chúng ta thấy rằng mọi công việc 681 00:37:35,030 --> 00:37:39,590 là một đối tượng với một văn bản như là chìa khóa và bất cứ điều gì 682 00:37:39,590 --> 00:37:41,640 để làm mục của bạn là như một biến. 683 00:37:41,640 --> 00:37:44,680 Vì vậy, chúng ta có thể làm một cái gì đó ở đây. 684 00:37:44,680 --> 00:37:50,160 >> Chúng tôi có thể có nó chèn một nhiệm vụ gọi tôi đến từ Mongo. 685 00:37:50,160 --> 00:37:52,570 Và chúng tôi nhấn Enter, và nó chạy. 686 00:37:52,570 --> 00:37:56,900 Chúng tôi có thể chạy tìm một lần nữa, và chúng tôi thấy rằng có một đối tượng ở đây. 687 00:37:56,900 --> 00:38:01,810 Mongo gán cho nó một ID, mà bạn không thực sự cần phải lo lắng. 688 00:38:01,810 --> 00:38:06,690 Các dữ liệu gì quan trọng với bạn bạn đặt vào, là các dữ liệu bạn nhận ra. 689 00:38:06,690 --> 00:38:10,500 >> Hãy quay trở lại trang web của chúng tôi, và hey, nhiệm vụ của chúng tôi nạp. 690 00:38:10,500 --> 00:38:13,987 Và bạn có thể thấy rằng vì Meteor là rất thông minh 691 00:38:13,987 --> 00:38:16,570 và luôn luôn cập nhật cho bạn, tôi không phải chạm trang. 692 00:38:16,570 --> 00:38:19,160 Nó tự động nạp. 693 00:38:19,160 --> 00:38:23,520 >> Hãy chạy một số mã trong JavaScript mặc dù để làm được điều này. 694 00:38:23,520 --> 00:38:26,120 Giống như chúng ta có Node ở phía sau kết thúc để thực hiện JavaScript, 695 00:38:26,120 --> 00:38:29,280 chúng ta cũng có thể chạy JavaScript trực tiếp trong trình duyệt của chúng tôi. 696 00:38:29,280 --> 00:38:31,970 Bạn có thể làm điều này bằng một tính năng gọi là Kiểm tra Element. 697 00:38:31,970 --> 00:38:34,210 Nếu tôi phải bấm vào một phần của trang, 698 00:38:34,210 --> 00:38:36,730 có một tùy chọn gọi là Kiểm tra Element. 699 00:38:36,730 --> 00:38:38,840 Nếu bạn đang chạy một trình duyệt như Safari, bạn 700 00:38:38,840 --> 00:38:45,430 có thể cần phải kích hoạt phát triển của bạn công cụ trước khi bạn có được tính năng này. 701 00:38:45,430 --> 00:38:46,930 >> Giao diện điều khiển những gì chúng tôi quan tâm là. 702 00:38:46,930 --> 00:38:48,930 Vì vậy, chúng tôi sẽ chỉ đi đến giao diện điều khiển ở phía dưới. 703 00:38:48,930 --> 00:38:52,110 704 00:38:52,110 --> 00:38:55,970 Bây giờ chúng ta có thể chạy bất kỳ JavaScript ở đây, giống như JavaScript 705 00:38:55,970 --> 00:38:58,860 file tôi thấy trong ví dụ js. 706 00:38:58,860 --> 00:39:02,040 Nhưng bây giờ chúng ta hãy nhìn vào công việc. 707 00:39:02,040 --> 00:39:04,955 Chúng tôi có thể chạy lệnh của chúng ta. 708 00:39:04,955 --> 00:39:07,830 Và tôi hy vọng sẽ có thể làm cho nó lớn hơn một chút vì vậy chúng tôi có thể nhìn thấy tất cả. 709 00:39:07,830 --> 00:39:14,390 710 00:39:14,390 --> 00:39:18,450 >> Nếu chúng ta chạy tasks.find, và bạn sẽ thấy rằng đây là mã chính xác cùng 711 00:39:18,450 --> 00:39:24,840 rằng các tập tin sử dụng JavaScript trong bước thứ ba, task.find này. 712 00:39:24,840 --> 00:39:29,100 Chúng tôi có thể chạy cùng một điều, và bây giờ chúng ta có được một số thứ lạ. 713 00:39:29,100 --> 00:39:31,050 Làm thế nào để chúng ta thực sự có được các dữ liệu? 714 00:39:31,050 --> 00:39:34,860 Vâng, chúng tôi phải chạy này lệnh gọi là lấy. 715 00:39:34,860 --> 00:39:37,150 >> Điều này là rất hữu ích để gỡ lỗi. 716 00:39:37,150 --> 00:39:41,000 Những gì bạn nhận được ở đây là một con trỏ, và điều này là 717 00:39:41,000 --> 00:39:44,890 một cách tốt đẹp Meteor có dữ liệu fetching tối ưu. 718 00:39:44,890 --> 00:39:48,270 Con trỏ này có tất cả các tính năng cho cập nhật trực tiếp và làm mới trang 719 00:39:48,270 --> 00:39:49,650 khi một cái gì đó đã thay đổi. 720 00:39:49,650 --> 00:39:51,280 Nhưng nó sẽ không cho chúng ta những dữ liệu. 721 00:39:51,280 --> 00:39:52,720 Chúng ta có thể lấy dữ liệu qua lấy. 722 00:39:52,720 --> 00:39:56,880 Và bạn thấy chúng ta có một đối tượng, và nó chỉ giống như những gì chúng ta đã có trong Mongo, 723 00:39:56,880 --> 00:40:00,040 với một ID và các văn bản chúng ta đưa vào. 724 00:40:00,040 --> 00:40:04,200 >> Vì vậy, làm thế nào để chúng ta chèn một mục trong Meteor? 725 00:40:04,200 --> 00:40:07,250 Vâng, chúng tôi chỉ có nhiệm vụ. 726 00:40:07,250 --> 00:40:09,990 Và sau đó chúng ta có thể chạy cùng một lệnh chèn, 727 00:40:09,990 --> 00:40:17,520 đưa ra một từ điển hay một đối tượng với các định dạng tương tự, văn bản 728 00:40:17,520 --> 00:40:22,340 và sau đó tôi đến từ giao diện điều khiển. 729 00:40:22,340 --> 00:40:27,240 Hãy xem ở trên bởi vì khi tôi làm điều này, nó hiển thị trên các trang web 730 00:40:27,240 --> 00:40:29,660 tự động. 731 00:40:29,660 --> 00:40:33,291 >> Chú ý rằng bạn có thể đặt bất cứ điều gì bạn muốn trong những mục này. 732 00:40:33,291 --> 00:40:35,040 Nó không phải có một cấu trúc cố định. 733 00:40:35,040 --> 00:40:39,790 Tôi có thể có một bằng số ba và b bằng giả. 734 00:40:39,790 --> 00:40:41,600 Và tất cả các công trình. 735 00:40:41,600 --> 00:40:46,000 Tôi thậm chí có thể chọn không bao gồm một văn bản nào cả. 736 00:40:46,000 --> 00:40:48,320 Đây chỉ là không được khuyến khích mặc dù bởi vì sau đó Meteor 737 00:40:48,320 --> 00:40:50,920 sẽ không biết những gì để hiển thị. 738 00:40:50,920 --> 00:40:53,110 Nhưng trong mỗi trường hợp, chúng tôi nhận được một ID, và đó là 739 00:40:53,110 --> 00:40:54,785 ID của đối tượng bạn có thể sử dụng. 740 00:40:54,785 --> 00:41:01,120 741 00:41:01,120 --> 00:41:03,280 >> Như chúng ta tiếp tục với bước bốn bước năm, 742 00:41:03,280 --> 00:41:06,870 hướng dẫn sẽ chỉ cho bạn những cách mà bạn có thể tạo ra các yếu tố giao diện người dùng sử dụng 743 00:41:06,870 --> 00:41:13,130 HTML bạn biết đến tạo ra các nhiệm vụ khác nhau. 744 00:41:13,130 --> 00:41:15,440 Hãy nhìn vào bước thứ thực sự nhanh chóng. 745 00:41:15,440 --> 00:41:18,290 Chúng ta sẽ thấy rằng chúng tôi đã thêm một phần về sự kiện. 746 00:41:18,290 --> 00:41:20,874 Mẫu có thể có người giúp đỡ, trong đó có chúng tôi dữ liệu. 747 00:41:20,874 --> 00:41:22,040 Nhưng nó cũng có thể gọi các sự kiện. 748 00:41:22,040 --> 00:41:25,300 Và đây là nơi mà các công cụ trở nên hữu ích, bởi vì sự kiện 749 00:41:25,300 --> 00:41:28,590 được những gì xảy ra khi bạn nhấp chuột vào điều khác nhau trên trang web của bạn. 750 00:41:28,590 --> 00:41:33,790 >> Ở đây, mã của chúng tôi là nói chúng tôi để thêm sự kiện này. 751 00:41:33,790 --> 00:41:38,860 Thêm nó khi bạn đã gửi một cái gì đó với nhiệm vụ class mới. 752 00:41:38,860 --> 00:41:41,910 Một bộ chọn CSS những gì bạn có ở đây là. 753 00:41:41,910 --> 00:41:45,870 Vì vậy, đây chỉ trông cho một HTML phần tử có nhiệm vụ class mới. 754 00:41:45,870 --> 00:41:47,940 Và nó trông cho sự kiện này, như trình. 755 00:41:47,940 --> 00:41:51,050 Các sự kiện khác bao gồm nhấp chuột, di chuột, nhấp đúp chuột, 756 00:41:51,050 --> 00:41:54,450 tương tự như những gì bạn nhận được trong HTML bình thường. 757 00:41:54,450 --> 00:41:56,770 >> Những gì bạn cung cấp cho nó ở đây bây giờ là một chức năng. 758 00:41:56,770 --> 00:42:01,210 Và bạn có thể có của bạn mã trong chức năng đó. 759 00:42:01,210 --> 00:42:06,360 Chức năng này là những gì kết thúc lên nhận gọi khi bạn gửi nhiệm vụ mới này. 760 00:42:06,360 --> 00:42:12,170 Hãy nhìn vào HTML chỉ vì vậy chúng tôi hiểu những gì nhiệm vụ mới này là. 761 00:42:12,170 --> 00:42:15,570 Chúng tôi đã thêm một mẫu ở đây với lớp nhiệm vụ mới. 762 00:42:15,570 --> 00:42:19,880 Và nó có một đầu vào mà phải mất văn bản. 763 00:42:19,880 --> 00:42:22,605 Và đây là nơi mà chúng ta sẽ bổ sung thêm nhiệm vụ mới của chúng tôi. 764 00:42:22,605 --> 00:42:25,520 765 00:42:25,520 --> 00:42:29,780 >> Hãy chạy bước bốn trong trang web để xem nó trông như thế nào. 766 00:42:29,780 --> 00:42:32,710 Chúng ta có thể bỏ ra đầu tiên của chúng tôi đã có MongoDB 767 00:42:32,710 --> 00:42:35,300 từ trước đó của chúng tôi Ví dụ với điều khiển C. 768 00:42:35,300 --> 00:42:37,690 Và chúng ta hãy thay đổi nó thành bước bốn thư mục. 769 00:42:37,690 --> 00:42:41,000 770 00:42:41,000 --> 00:42:42,920 Chúng tôi sẽ chạy lại Meteor để khởi động máy chủ. 771 00:42:42,920 --> 00:42:46,850 772 00:42:46,850 --> 00:42:50,510 Và thật không may, tôi đã Meteor chạy trong thiết bị đầu cuối khác. 773 00:42:50,510 --> 00:42:53,080 Vì vậy, tôi chỉ cần đi tới đảm bảo điều này đóng cửa. 774 00:42:53,080 --> 00:43:01,805 Hãy bỏ này và thay đổi đến phần bốn, bốn bước. 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 >> Bây giờ đang Meteor của chúng tôi đang chạy. 778 00:43:13,250 --> 00:43:19,480 Và bạn có thể thấy rằng nó được cập nhật, mà không chúng tôi thậm chí phải làm mới trang. 779 00:43:19,480 --> 00:43:24,410 Điều gì đã thay đổi ở đây bây giờ là rằng chúng tôi không có bất kỳ nhiệm vụ, 780 00:43:24,410 --> 00:43:29,530 nhưng chúng ta có một mẫu ở đây, điều này hộp văn bản, để thêm nhiệm vụ mới của chúng tôi. 781 00:43:29,530 --> 00:43:31,550 Và chúng ta có thể gõ nhiệm vụ của chúng tôi ở đây. 782 00:43:31,550 --> 00:43:34,564 Tôi đến từ các trang HTML. 783 00:43:34,564 --> 00:43:36,105 Khi tôi nhấn Enter, nó đã nộp. 784 00:43:36,105 --> 00:43:39,180 785 00:43:39,180 --> 00:43:44,540 >> Chúng ta có thể nhìn thấy những gì đã xảy ra như được xác định bởi mã JavaScript. 786 00:43:44,540 --> 00:43:49,930 Hàm này đã làm được có văn bản từ hình thức, 787 00:43:49,930 --> 00:43:53,680 và sau đó chỉ cần gọi tasks.insert, như chúng ta đã làm trong console. 788 00:43:53,680 --> 00:43:56,410 Họ cũng đã chọn để thêm một ngày createdAt. 789 00:43:56,410 --> 00:43:59,840 Đây là cách bạn sẽ xác định thời gian hiện tại. 790 00:43:59,840 --> 00:44:03,220 Sau đó, nó sẽ xóa các hình thức bằng cách làm chắc chắn giá trị là chuỗi rỗng. 791 00:44:03,220 --> 00:44:06,550 >> Và sau đó nó gọi trở lại sai để đảm bảo không có gì khác xảy ra. 792 00:44:06,550 --> 00:44:10,350 Khi bạn trở về sai từ một sự kiện hình thức, mà dừng thực hiện. 793 00:44:10,350 --> 00:44:14,520 Nói một hình thức có một hành động, như gửi đến một trang PHP. 794 00:44:14,520 --> 00:44:16,980 Nếu bạn đã không quay trở lại sai, bạn sẽ trở thành sự thật. 795 00:44:16,980 --> 00:44:18,500 Nó sẽ kết thúc làm cho yêu cầu đó. 796 00:44:18,500 --> 00:44:20,590 False chặn nó và dừng lại ngay. 797 00:44:20,590 --> 00:44:23,510 798 00:44:23,510 --> 00:44:28,610 >> Vì vậy, đó là một bản demo ít về Meteor cách làm việc, và chúng tôi đã 799 00:44:28,610 --> 00:44:30,980 được sau bài hướng dẫn trong một thời gian. 800 00:44:30,980 --> 00:44:33,560 Và bạn có thể xin vui lòng miễn phí để tiếp tục làm điều này. 801 00:44:33,560 --> 00:44:37,760 Có rất nhiều tài nguyên, và các hướng dẫn thực giống 802 00:44:37,760 --> 00:44:40,400 rất tốt về giải thích những gì đang xảy ra. 803 00:44:40,400 --> 00:44:44,362 Tôi muốn cho bạn thấy bây giờ, trong vài phút chúng ta đã để lại, 804 00:44:44,362 --> 00:44:46,320 một số là gì tính năng mát của Meteor, 805 00:44:46,320 --> 00:44:48,772 và một số là gì gói hữu ích hơn. 806 00:44:48,772 --> 00:44:51,730 Một trong những điều tuyệt vời về Meteor là bạn có một hệ thống trọn gói. 807 00:44:51,730 --> 00:44:55,620 Bạn có thể dễ dàng kết hợp mã rằng nhiều ngàn nhà phát triển 808 00:44:55,620 --> 00:44:58,840 đã viết trên toàn thế giới vào dự án Meteor của bạn. 809 00:44:58,840 --> 00:45:02,410 Một ví dụ của việc này là những gì bạn có thể làm trong bước chín của hướng dẫn, nơi 810 00:45:02,410 --> 00:45:07,435 bạn đang cố gắng để thêm tài khoản để dự án của bạn Meteor. 811 00:45:07,435 --> 00:45:10,010 812 00:45:10,010 --> 00:45:13,690 Nếu chúng ta có một CS50 PHP dự án, chúng ta sẽ có 813 00:45:13,690 --> 00:45:17,810 dựa vào khuôn khổ hoặc mã riêng của chúng tôi để làm cho 814 00:45:17,810 --> 00:45:20,820 chắc chắn chúng tôi xử lý một cách an toàn mật khẩu và tên người dùng 815 00:45:20,820 --> 00:45:23,120 và lưu trữ cơ sở dữ liệu và tất cả điều đó. 816 00:45:23,120 --> 00:45:25,670 >> Hóa ra Meteor có một số gói để làm điều đó cho bạn, 817 00:45:25,670 --> 00:45:29,160 và để làm điều đó rất dễ dàng. 818 00:45:29,160 --> 00:45:31,950 Những gì chúng tôi có thể làm là thêm một vài gói. 819 00:45:31,950 --> 00:45:37,450 Vì vậy, hãy làm ngay mà bây giờ trong giao diện điều khiển của chúng tôi. 820 00:45:37,450 --> 00:45:42,460 Tôi sẽ bỏ dự án và ngay bây giờ đi vào, đơn giản todos. 821 00:45:42,460 --> 00:45:47,450 822 00:45:47,450 --> 00:45:50,050 Bây giờ, đơn giản là todos dự án mà bạn 823 00:45:50,050 --> 00:45:53,500 sẽ có sau khi được thực hiện với bước 11 hoặc 12 bước, 824 00:45:53,500 --> 00:45:55,250 ở phần cuối của hướng dẫn này. 825 00:45:55,250 --> 00:45:58,642 Và chúng ta hãy nhanh chóng nhìn vào nó để xem các tính năng khác nhau, chúng tôi có là gì. 826 00:45:58,642 --> 00:46:01,610 Chúng ta chỉ cần chắc chắn rằng nó đang chạy. 827 00:46:01,610 --> 00:46:04,400 Đôi khi phải mất một lúc để làm mới, nhưng ở đây nó được. 828 00:46:04,400 --> 00:46:09,710 >> Chúng tôi có tùy chọn để ẩn hoàn thành nhiệm vụ, và chúng tôi có thể đăng nhập. 829 00:46:09,710 --> 00:46:11,770 Và điều này đã được thực hiện với gói Meteor. 830 00:46:11,770 --> 00:46:12,270 Thật tuyệt vời. 831 00:46:12,270 --> 00:46:14,910 Hiện chúng tôi đã username và dấu mật khẩu trong. 832 00:46:14,910 --> 00:46:19,170 Nhưng nếu chúng ta muốn thêm một loại cơ chế đăng nhập? 833 00:46:19,170 --> 00:46:22,560 Hãy nói rằng tôi muốn đăng nhập với tài khoản Meteor của tôi. 834 00:46:22,560 --> 00:46:27,270 Tôi sẽ chạy sao băng add, và điều này là cú pháp cho việc thêm gói. 835 00:46:27,270 --> 00:46:32,160 Tôi có thể nói rằng các tài khoản, và accounts.meteor. 836 00:46:32,160 --> 00:46:35,720 Nó sẽ thấy bây giờ gói và tải nó. 837 00:46:35,720 --> 00:46:40,480 Bạn có thể thấy rằng tôi có không tìm thấy tên gói phải. 838 00:46:40,480 --> 00:46:42,820 >> Vậy làm thế nào để bạn tìm hiểu về các gói? 839 00:46:42,820 --> 00:46:46,380 Cũng có một trang web tuyệt vời, làm sẵn có của người dân Meteor, 840 00:46:46,380 --> 00:46:47,780 gọi atmospherejs.com. 841 00:46:47,780 --> 00:46:52,520 Atmospherejs, một từ, dot com, là một kho lưu trữ lớn 842 00:46:52,520 --> 00:46:57,660 cho việc tìm kiếm tất cả các Meteor gói trong kho. 843 00:46:57,660 --> 00:47:05,140 Tôi có thể tìm kiếm các tài khoản, và sau đó nó sẽ cho tôi tất cả những thứ có liên quan, 844 00:47:05,140 --> 00:47:07,320 tất cả các gói có tên của tài khoản. 845 00:47:07,320 --> 00:47:10,180 846 00:47:10,180 --> 00:47:13,270 >> Trong khi đó tải, chúng tôi có thể thử thêm một số gói khác. 847 00:47:13,270 --> 00:47:19,380 Có lẽ các gói Meteor không làm việc ngay bây giờ, nhưng tôi có thể thêm vào Facebook. 848 00:47:19,380 --> 00:47:22,860 849 00:47:22,860 --> 00:47:27,190 Tôi có thể thêm các tài khoản và sau đó chạy các dự án Meteor lại. 850 00:47:27,190 --> 00:47:33,260 851 00:47:33,260 --> 00:47:36,900 Một khi điều này bắt đầu, chúng ta hãy xem những gì đang thay đổi trên trang web. 852 00:47:36,900 --> 00:47:40,010 853 00:47:40,010 --> 00:47:44,580 Bạn có thể see-- tôi có thể phải làm mới nó ở đây. 854 00:47:44,580 --> 00:47:47,320 >> Tôi có một nút để cấu hình Facebook đăng nhập. 855 00:47:47,320 --> 00:47:49,765 Và ở đây, tôi có tất cả hướng dẫn Meteor 856 00:47:49,765 --> 00:47:52,960 đã chuẩn bị sẵn sàng cho bạn thiết lập một ứng dụng Facebook. 857 00:47:52,960 --> 00:47:58,990 Và bạn có thể sử dụng thông tin thêm ID của bạn. 858 00:47:58,990 --> 00:48:04,130 Khi đã xong, bạn sẽ có Đăng nhập Facebook làm việc trong ứng dụng của bạn. 859 00:48:04,130 --> 00:48:08,559 >> Tôi chỉ cần đi để có được một ID ứng dụng và một bí mật, 860 00:48:08,559 --> 00:48:10,100 chỉ để cho bạn thấy làm thế nào điều này có thể làm việc. 861 00:48:10,100 --> 00:48:16,000 862 00:48:16,000 --> 00:48:20,360 Bạn sẽ cần một tài khoản Facebook để sử dụng Facebook tùy chọn nhà phát triển. 863 00:48:20,360 --> 00:48:31,160 864 00:48:31,160 --> 00:48:35,290 Hãy để tôi chỉ nhanh chóng tìm thấy Phím Meteor đó là cần thiết. 865 00:48:35,290 --> 00:48:46,994 866 00:48:46,994 --> 00:48:49,160 Tôi có một dự án Meteor rằng tôi sẽ sử dụng, 867 00:48:49,160 --> 00:48:55,590 và tôi chỉ cần đi để có các phím từ tập tin đó. 868 00:48:55,590 --> 00:49:14,410 869 00:49:14,410 --> 00:49:20,930 >> Và một khi tôi tìm thấy nó, tôi sẽ chỉ có thể để sao chép các phím vào Facebook của tôi. 870 00:49:20,930 --> 00:49:23,489 Vì vậy, đây là một chìa khóa. 871 00:49:23,489 --> 00:49:24,280 Và đây là bí mật. 872 00:49:24,280 --> 00:49:26,071 Bạn không nên chia sẻ điều này với mọi người. 873 00:49:26,071 --> 00:49:28,870 874 00:49:28,870 --> 00:49:30,910 Và sau đó bạn cho nó bí mật ứng dụng của bạn. 875 00:49:30,910 --> 00:49:33,560 Và điều này là để Facebook biết bạn là bạn. 876 00:49:33,560 --> 00:49:37,630 877 00:49:37,630 --> 00:49:39,080 Và bạn lưu lại cấu hình. 878 00:49:39,080 --> 00:49:45,160 879 00:49:45,160 --> 00:49:48,640 >> Tôi nghĩ rằng trong quá trình tôi đã ngừng ứng dụng Meteor của tôi. 880 00:49:48,640 --> 00:49:52,290 Vì vậy, tôi chỉ muốn làm chắc chắn nó vẫn còn đó. 881 00:49:52,290 --> 00:49:54,962 882 00:49:54,962 --> 00:49:58,610 OK, hãy chắc chắn rằng máy chủ của chúng tôi Meteor chạy rất trang web đang chạy. 883 00:49:58,610 --> 00:50:02,440 Chú ý nếu chúng ta dừng Meteor máy chủ, trang web vẫn còn đó. 884 00:50:02,440 --> 00:50:04,700 Nó chỉ sẽ không cập nhật nữa. 885 00:50:04,700 --> 00:50:10,290 Các máy chủ Meteor là cần thiết cho việc bảo đảm trang được sống. 886 00:50:10,290 --> 00:50:14,050 >> OK, tôi đã gửi nó, và bây giờ Tôi có thể đăng nhập bằng Facebook. 887 00:50:14,050 --> 00:50:17,400 Bây giờ nó chỉ là một vấn đề có một cửa sổ pop up Facebook 888 00:50:17,400 --> 00:50:21,710 và đưa vào tài khoản của bạn thông tin và đăng nhập. 889 00:50:21,710 --> 00:50:24,520 890 00:50:24,520 --> 00:50:27,930 Một khi bạn làm điều đó, Facebook có thể nag bạn cho một số bảo mật hơn. 891 00:50:27,930 --> 00:50:29,810 Vì vậy, chúng tôi sẽ chỉ dừng lại ở đó. 892 00:50:29,810 --> 00:50:34,110 Vấn đề là khi bạn đang thực hiện với điều đó, bạn sẽ phải đăng nhập Facebook. 893 00:50:34,110 --> 00:50:37,850 >> Meteor có một bó gói khác. 894 00:50:37,850 --> 00:50:39,200 Bạn có thể đăng nhập với Google+. 895 00:50:39,200 --> 00:50:40,500 Bạn có thể đăng nhập với GitHub. 896 00:50:40,500 --> 00:50:42,170 Bạn có thể đăng nhập với Twitter. 897 00:50:42,170 --> 00:50:44,870 Hoặc nếu bạn tìm kiếm, bạn sẽ thấy tìm thấy nhiều điều khác 898 00:50:44,870 --> 00:50:49,170 như Meetup, LinkedIn, và Meteor Developer. 899 00:50:49,170 --> 00:50:53,100 Vì vậy, Meteor Developer là gói tôi đang tìm kiếm. 900 00:50:53,100 --> 00:50:56,170 sao băng thêm tài khoản-sao băng-phát triển. 901 00:50:56,170 --> 00:51:06,192 902 00:51:06,192 --> 00:51:07,900 Trong khi chờ đợi, tôi cũng muốn giới thiệu 903 00:51:07,900 --> 00:51:11,340 một số gói khác cho các dự án của bạn. 904 00:51:11,340 --> 00:51:14,670 Nó có thể hữu ích để bao gồm các gói jQuery. 905 00:51:14,670 --> 00:51:17,909 Điều này cho phép bạn sử dụng jQuery trong các khách hàng của bạn. 906 00:51:17,909 --> 00:51:21,200 Bạn chỉ có thể làm điều đó với một dòng, và Meteor sẽ chắc chắn rằng bạn đã được cập nhật 907 00:51:21,200 --> 00:51:21,825 về jQuery. 908 00:51:21,825 --> 00:51:24,330 909 00:51:24,330 --> 00:51:27,450 Tôi cũng khuyên houston: admin. 910 00:51:27,450 --> 00:51:31,550 >> Đây là loại giống như một phpMyAdmin loại công cụ cho MongoDB của bạn. 911 00:51:31,550 --> 00:51:33,890 Điều này cho phép bạn chỉnh sửa dữ liệu của bạn khá dễ dàng 912 00:51:33,890 --> 00:51:37,950 mà không cần phải đi đến các vỏ Mongo, như tôi đã thực hiện trước đó trong các buổi hội thảo. 913 00:51:37,950 --> 00:51:43,160 914 00:51:43,160 --> 00:51:47,101 Vì vậy, bây giờ mà đang chạy, hãy chạy Sao băng lại và xem những gì chúng tôi có thể làm. 915 00:51:47,101 --> 00:51:56,240 916 00:51:56,240 --> 00:52:00,720 >> Bạn nhận thấy rằng việc thêm một số gói có thể có họ trình bày một số cảnh báo. 917 00:52:00,720 --> 00:52:02,720 Bạn sẽ không cần phải lo lắng về điều đó với houston. 918 00:52:02,720 --> 00:52:06,040 919 00:52:06,040 --> 00:52:10,810 Vì vậy, bây giờ chúng ta có thể có các tùy chọn để cấu hình Meteor admin. 920 00:52:10,810 --> 00:52:15,080 Và họ cung cấp cho bạn các hướng dẫn nếu bạn muốn thiết lập mà lên. 921 00:52:15,080 --> 00:52:17,750 922 00:52:17,750 --> 00:52:20,440 >> Chúng tôi cũng có thể bây giờ đi đến / admin. 923 00:52:20,440 --> 00:52:23,280 Điều này mang lại cho bạn bởi gói houston. 924 00:52:23,280 --> 00:52:27,470 Và đây là giao diện quản trị Meteor. 925 00:52:27,470 --> 00:52:30,660 Bạn chỉ cần tạo một tài khoản admin, như vậy. 926 00:52:30,660 --> 00:52:38,150 Và nếu bạn refresh trang web, bạn có thể có một số bộ sưu tập hiển thị lên. 927 00:52:38,150 --> 00:52:40,980 928 00:52:40,980 --> 00:52:43,460 >> Đó là một công cụ rất hữu ích, và tôi mạnh mẽ khuyên bạn nên nó. 929 00:52:43,460 --> 00:52:46,717 930 00:52:46,717 --> 00:52:49,050 Bạn có thể thấy rằng vì houston đã đưa ra một số sai sót, 931 00:52:49,050 --> 00:52:52,330 chúng tôi không có bất kỳ bộ sưu tập hiển thị ngay bây giờ. 932 00:52:52,330 --> 00:52:56,800 Cách bạn sẽ sử dụng là houston đảm bảo chức năng này được 933 00:52:56,800 --> 00:52:58,860 gọi đơn giản-todos của bạn. 934 00:52:58,860 --> 00:53:01,370 Vì vậy, houston không biết nhiệm vụ của tôi là. 935 00:53:01,370 --> 00:53:04,490 >> Chúng tôi thiết lập một Mongo Bộ sưu tập được gọi là nhiệm vụ. 936 00:53:04,490 --> 00:53:11,390 Chúng ta hãy đi vào, đơn giản và chỉ cần todos chắc chắn rằng trong JavaScript, 937 00:53:11,390 --> 00:53:16,295 chúng tôi đã bổ sung thêm nhiệm vụ cho các bộ sưu tập của chúng tôi. 938 00:53:16,295 --> 00:53:19,340 939 00:53:19,340 --> 00:53:25,670 Bây giờ chúng ta đã lưu lại, và nó đang xây dựng các ứng dụng, làm mới. 940 00:53:25,670 --> 00:53:26,750 Và chúng ta hãy xem. 941 00:53:26,750 --> 00:53:29,090 Bây giờ chúng tôi có một số nhiệm vụ. 942 00:53:29,090 --> 00:53:32,630 Và chúng ta có thể thêm một số nhiệm vụ mới. 943 00:53:32,630 --> 00:53:35,840 Nhưng nếu chúng ta muốn thêm nhiệm vụ, chúng ta hãy làm điều đó với các ứng dụng riêng của mình. 944 00:53:35,840 --> 00:53:39,660 945 00:53:39,660 --> 00:53:41,050 >> Bây giờ chúng ta có thể thêm một số dữ liệu. 946 00:53:41,050 --> 00:53:53,410 Hi, đây là một nhiệm vụ. 947 00:53:53,410 --> 00:53:57,080 Có vẻ như loại lạ mà chúng tôi không nhìn thấy bất kỳ nhiệm vụ. 948 00:53:57,080 --> 00:54:00,290 949 00:54:00,290 --> 00:54:05,260 Chúng tôi có thể muốn kiểm tra xem chúng có bất kỳ lỗi ở đây, hoặc có thể ở một nơi khác. 950 00:54:05,260 --> 00:54:08,810 951 00:54:08,810 --> 00:54:20,260 Nếu chúng ta đi vào admin, mà có vẻ kỳ lạ. 952 00:54:20,260 --> 00:54:24,080 Nếu bạn kéo các kho lưu trữ Sau hội thảo này, 953 00:54:24,080 --> 00:54:27,580 Tôi sẽ đảm bảo rằng đơn giản-todos làm việc với houston. 954 00:54:27,580 --> 00:54:30,370 Thật không may, nó dường như không được làm việc tại thời điểm này. 955 00:54:30,370 --> 00:54:34,810 956 00:54:34,810 --> 00:54:37,640 >> Có bất kỳ câu hỏi khác? 957 00:54:37,640 --> 00:54:41,800 Houston thường là một công cụ đó hoạt động rất tốt. 958 00:54:41,800 --> 00:54:44,510 Houston cụ thể là một chút buggier hơn những người khác, 959 00:54:44,510 --> 00:54:49,470 nhưng tôi khuyên bạn nên nó khi nó hoạt động. 960 00:54:49,470 --> 00:54:50,080 Yeah. 961 00:54:50,080 --> 00:54:52,395 >> Đung gì bạn có thể làm với các gói Facebook 962 00:54:52,395 --> 00:54:54,270 một khi người dùng được đăng nhập với Facebook của họ? 963 00:54:54,270 --> 00:54:55,978 >> ROGER ZURAWICKI: Khi một người sử dụng của đăng nhập, 964 00:54:55,978 --> 00:54:59,540 bạn có thể thực hiện cuộc gọi đến các API Facebook. 965 00:54:59,540 --> 00:55:02,890 Rất nhiều nằm ở cách Facebook mở API của họ. 966 00:55:02,890 --> 00:55:05,120 Meteor, hãy chắc chắn bạn có kết nối. 967 00:55:05,120 --> 00:55:09,300 Nhưng tất cả mọi thứ sau đó là một vấn đề học tập như thế nào để sử dụng Facebook API. 968 00:55:09,300 --> 00:55:10,216 Đung [không nghe được]. 969 00:55:10,216 --> 00:55:17,756 970 00:55:17,756 --> 00:55:18,880 ROGER ZURAWICKI: Được rồi. 971 00:55:18,880 --> 00:55:21,670 Cảm ơn bạn rất nhiều cho Hội thảo CS50 này trong Meteor. 972 00:55:21,670 --> 00:55:24,060 Nếu bạn có bất kỳ câu hỏi, bạn có thể gửi email cho tôi 973 00:55:24,060 --> 00:55:28,319 tại địa chỉ email của tôi được liệt kê dưới đây các hội thảo. 974 00:55:28,319 --> 00:55:30,110 Và tôi sẽ được hạnh phúc để trả lời câu hỏi của bạn. 975 00:55:30,110 --> 00:55:33,020 Tôi cũng sẽ có mặt tại CS50 Hackathon nên 976 00:55:33,020 --> 00:55:35,550 Bạn cần giúp đỡ dự án Meteor của bạn. 977 00:55:35,550 --> 00:55:37,650 Cảm ơn bạn đã xem. 978 00:55:37,650 --> 00:55:38,816