KEVIN Schmid در: سلام بر همه. به سمینار CS50 خوش آمدید در Node.js. نام من کوین است. من TF CS50 هستم. و من نوعی مانند واقعا هیجان زده ام در مورد این همایش. من فکر می کنم Node.js بسیار سرد است. من امیدوارم که این سمینار را می توان مورد استفاده قرار گیرد به عنوان خوب، من حدس می زنم، سکوی پرشی برای برخی از پروژه های نهایی خود را در صورت شما علاقه مند به استفاده هستید چیزی شبیه به Node.js. ما نوع را شروع می کنیم این سمینار کردن توسط فقط در مورد کمی از صحبت کردن نوع مقیاس پذیری پس زمینه دیدگاه Node.js، و پس از آن ما به برخی از نمونه کد حرکت می کند. و من کد را در یک وب سایت، و شما می توانید در کد نگاه کنید. و پس از این سمینار، من از بحث مرتب سازی بر اساس در مورد چگونه شما می توانید راه اندازی Node.js بر روی کامپیوتر شما. OK. بنابراین اجازه دهید شروع کنید. بنابراین من حدس می زنم من فقط می خواهم به بحث در مورد وب سرور، در واقع، برای اولین بار. و برای شروع این بحث، من اساسا یک نمودار است که از داشته کتاب درسی مورد استفاده برای CS61، که اساسا تعامل را نشان می دهد بین یک فرآیند مشتری، مانند وب سایت خود را مرورگر و یا مانند مشتری هدف خود را و یا چیزی شبیه به آن، و یک وب سرور. بنابراین این نوع از به نظر می رسد شبیه به تصویری که شما را در سخنرانی در دیدم چهارشنبه که در آن در واقع ما باید برخی از فرآیند مشتری مانند گوگل کروم. و پس از آن مرحله است مشتری یک درخواست ارسال می کند. به طوری که می تواند چیزی شبیه به خوبی بیایید ببینید، من نمی دانم، CS50.net. پس ما که درخواست صدور. و آیا کسی به یاد داشته باشید نام پروتکل است که مشخص می کند که چگونه است که درخواست باید ساختار؟ بله. یک مدعو: [نامفهوم]. KEVIN Schmid در: دقیقا. بنابراین آن را مانند HTTP است، درست است؟ بنابراین اساسا خصوصیات چگونه این درخواست باید در واقع گذاشته شود ، زیرا در پایان روز، این درخواست واقعا درست مثل یک رشته ای که اساسا می گوید من می خواهم این. و مشخصات برای که HTTP است. به طوری که مانند یک پروتکل است. بنابراین پس از آن از سرور دریافت که به درخواست. پس شما بچه ها باید یک وب سرور نصب شده در دستگاه CS50. این آپاچی است. و این هفته زمانی که شما در مشکل کار مجموعه هفت، در واقع شما می خواهید کار با وب سرور. بنابراین سرور دریافت که درخواست، و سپس آن را به نوعی از خراش آن سر و می گویند مانند خوب چه من با انجام این کار؟ بنابراین در آنچه در آن تصمیم به انجام دهید، سپس بر اساس ممکن است مجبور به تماس با برخی از نوع از منابع. و این منابع می تواند یک بسیاری از مسائل مختلف. برای یکی، آن می تواند فقط مانند یک فایل HTML استاتیک می باشد. پس از آن فقط می تواند مانند برخی HTML است که مانند برای وب سایت شخصی خود. این می تواند یک فایل شخص مانند یک تصویر و یا مثل یک فیلم است که شما داشته باشد. این حتی می تواند به بحث به نوعی از پایگاه داده مانند یک پایگاه داده MySQL. پس از آن همیشه باید ارتباط با یک منبع، اما در برخی از موارد، می تواند. بنابراین پس از آن چه آن را به انجام پس از آن است آن را به ارسال به پاسخ. و پاسخ این است همچنین توسط HTTP مشخص شده است. بنابراین پس از آن مشتری می تواند آن را دریافت. این می تواند از هم گسیخته و پردازش آن است. و پس از آن شما یک صفحه وب را دریافت کنید مانند گوگل یا CS50.net و یا هر آنچه شما به رفت. OK؟ بنابراین این تعامل اساسی این است که ما در حال رفتن به خرید و فروش با. و ما تقریبا برای رفتن به با تمرکز بر این بخش از تعامل، سرور. OK. دانلود. هر کسی هر گونه سوال تا کنون؟ OK. بنابراین همانطور که گفتیم، وب سرور دریافت این درخواست HTTP و سپس این مسائل پاسخ HTTP. و مانند ما صحبت در مورد قبل، لوازم CS50 وب سرور آپاچی است. بنابراین، هنگامی که شما بچه ها در کار P مجموعه هفت، شما به کار با وب سرور آپاچی. شما هرگز به واقعا کار کند با آپاچی به طور مستقیم بیش از حد. شما نوع پیکربندی آپاچی کمی هنگامی که شما از میزبان های مجازی و یا مشخص میزبان V، و ما را دریافت کنید به که در کمی. اما در واقع، وب سرور آپاچی راه اندازی کار با انواع PHP از خارج از جعبه. بنابراین آنچه واقعا اتفاق می افتد زمانی که شما به به یکی از وب سایت های خود را مانند، می گویند، میزبان محلی فایل index.php بریده بریده و یا چیزی، است مرورگر شما می فرستد که درخواست، و سپس آپاچی نشسته است وجود دارد و آمار و ارقام به کار با آن است. و این اقدام را به اجرا که در فایل index.php و سپس ارسال آن خاموش است. به طوری که وجود دارد. بنابراین ما به نوعی در مورد این صحبت کردیم. پس از آن فقط می تواند در خدمت یک فایل شخص و یا اجرای برخی از کد PHP و پس از آن موضوع پاسخ. بنابراین پس از آن یک سوال مشترک است که می تواند تا به خوبی، ما چگونه واقعا برخورد با داشتن چند کاربر در همان زمان؟ بنابراین تصور کنید اگر شما نوشتن یک وب سرور، اگر شما یک وب سرور داشته که شما تلاش شد تا در چیزی مانند C و یا چیزی شبیه به آن، در واقع شما می توانید در مورد فکر می کنم که چگونه وجود دارد می تواند نوعی از کد که را به درخواست دریافت خواهید کرد، اما پس از آن آن را به انجام تمام این کار بر روی آن. این ممکن است به عنوان مثال، با پایگاه داده و یا چیزی شبیه به آن. درست است؟ و سپس آن را به این نوع کار را انجام پردازش و پس از آن فرستاده پاسخ. به طوری که به مانند بالا مروری در سطح. اما آن را بلافاصله واضح نیست که چگونه شما می توانید انجام این کار به طوری که دو نفر یا حتی 1000 مردم می توانند با کار شما وب سرور در همان زمان. بنابراین راه حل که آپاچی با استفاده از نامیده می شود موضوعات و یا فرآیندهای. بنابراین شما ممکن است به گوش این شرایط قبل از. این OK اگر شما را نداشته باشند، اما فقط فکر می کنم در مورد موضوعات و یا پروسه به عنوان راه برای یک سیستم عامل یا یک برنامه یا کاربر چیزی شبیه به آن و یا یک وب سرور به نوعی اجرا چندگانه همه چیز در یک بار. بنابراین شما ممکن است مدت شنیده مانند موضوعات اعدام. پس از آن نوع مانند شما مرتب کردن بر اساس چند وظیفه ای. و اگر شما بر روی جعبه از دیده ام خود را لپ تاپ و یا چیزی شبیه به آن، چند، چیزی که شما می توانید انجام دهید این است که شما می توانید اجرای دو موضوعات مختلف در مختلف بخش هایی از CPU به طوری که آنها می توانند در واقع در همان زمان اتفاق می افتد. پس این واقعا قدرتمند است. و این نوع در آپاچی است راه حل این مشکل. بنابراین نوع مانند هر گونه مسائل وجود دارد با این روش هر چند؟ بنابراین من حدس می زنم من از نوع آنها وجود دارد نوشت. اما هر دو آنها را نوع استفاده از مقدار زیادی از حافظه. این بسیار گران برای ایجاد یک موضوع و یا یک فرآیند. و بخشی از استدلال است که فقط مانند وقتی که شما در حال اجرا یک برنامه C مثل اصلی خود را و پس از آن که تماس های تابع دیگر، که نوعی از پشته. بنابراین موضوعات نیز نیاز به به طور کامل پشته جداگانه که می تواند کاملا بزرگ است. و اگر شما می توانید تصور کنید که دارای تن کاربران در وب سایت خود، شما را مجبور بسیاری از موضوعات مختلف. که بسیاری از پشته به مدیریت و نگهداری. پس از آن مصرف حافظه های بزرگ است. و پس از آن، نیز، اجازه دهید به شما می گویند فقط باید یک CPU و یا اجازه دهید بگویم شما موضوعات بیشتر از شما کسانی که multicores. درست است؟ بنابراین اجازه دهید به شما می گویند به حال 10 موضوعات و شما فقط پنج پردازنده بود. شما نوع باید انجام دهید این چیزی که در آن شما بین جریان تغییر دهید که در حال اجرا به خاطر شما می توانید تمام 10 اجرا کنید در یک بار. و این یک سوئیچ بافت نامیده می شود. و این مدت در واقع یک زن و شوهر از زمینه های مختلف، اما اجازه دهید فقط از آن فکر می کنم به عنوان تغییر بین دو موضوعات. این می تواند بسیار گران قیمت به دلیل اساسا آنچه شما باید انجام دهید به شما می باشد باید برای متوقف کردن آنچه شما انجام می دهند، نجات دولت از این موضوع در حال اجرا، و پس از آن به جای دیگری تغییر دهید. پس آیا همه نوع از دیدن انگیزه چرا موضوعات و فرآیندهای ممکن است کمی بزرگ؟ و یک سوال؟ OK. دانلود. هر کسی هر گونه سوال؟ OK. بنابراین اگر ما را یک گام به عقب برای یک ثانیه، نوع مانند وجود دارد مشاهده است که ما می توانیم در مورد را بسیاری از برنامه های کاربردی وب. و این واقعا که بسیاری از آنها را در واقع انجام این کار بسیار مفید کار در داخل یک موضوع. بنابراین هر کسی در آغاز شده P مجموعه هفت در همه؟ بنابراین شما می خواهید به شاید توصیف برخی از قطعات؟ آیا شما در ورود به کار کرده است و یا چیزی شبیه به آن؟ حضار: نه KEVIN Schmid در: OK. اهمیتی ندارد. متأسفم. اما در واقع، در مجموعه ای P، شما رفتن به ساخت بسیاری از نوع نمایش داده شد به یک پایگاه داده به گرفتن برخی از اطلاعات از پایگاه داده باشد. و آنچه که کد خود را در حال رفتن به انجام این کار شود، آنچه که فرایند آپاچی و یا که موضوع آپاچی در حال رفتن به انجام می شود در حالی که آن را با پایگاه داده است به نوعی از رفتن به نشسته وجود دارد و آن را به انتظار برای پایگاه داده به پاسخ. حالا که ممکن است می خواهم که بزرگ صدا نیست مقابله به دلیل پایگاه داده است در خود لوازم CS50، درست است؟ اما نوعی از شبکه وجود دارد رکود وجود دارد زیرا در حال حاضر در وب سرور به صدور درخواست خود را به پایگاه داده برای برقراری ارتباط با پایگاه داده و پس از آن که اطلاعات را به عقب. بنابراین در حال حاضر آن را مانند به خوبی برای من صبر کنید، من رفتن به چیزی از پایگاه داده و پس از آن وجود دارد بسیاری از انتظار اتفاق افتاده است. آیا این را حس؟ و برای برخی چیزهای آن را که بد نیست. اگر آن را فقط به عنوان مثال، حافظه با دسترسی، که دوست ندارم وحشتناک تاخیر I / O. و هنگامی که من می گویم، I / O تاخیر، چیزی که من هستم با اشاره به است مانند هر نوع مانند ورودی خروجی. اما برای دسترسی به یک فایل بر روی دیسک، مانند اگر من می خواستم برای خدمت به HTML شخص فایل است که بر روی صفحه وب من بود یا چیزی شبیه به آن، من از نوع به توقف برای یک بیت، به عنوان خوانده شده که فایل در از دیسک، و سپس در این روند من در انتظار. من کار مفید انجام نمی دهد. این است که درست است از همه چیز نیست، اما آن را در برنامه های کاربردی مانند مجموعه ای P شایع است هفت و بسیاری از برنامه های کاربردی که نیستی در واقع انجام تفکر بسیار. و وقتی که من می گویند تفکر، منظور من مانند کار محاسباتی. کار محاسباتی می تواند چیزی مانند، می گویند، شما را به خواست ارسال یک وب سرور است که فقط محاسبه عدد فیبوناچی n ام. این مثل به ویژه صدا نیست وب سرور سرگرم کننده است. مثل من انتظار نیست که سایت به فیس بوک بعد، اما این است که برخی از نوع کار محاسباتی. و شما می توانید تصور کنید به جای که با نوع دیگری از جالب کار محاسباتی. بیایید می گویند شما چیزی نوشتن شد که درجه محاسبه جدایی بین دو نفر و یا چیزی شبیه به آن. به طوری که می کند شامل نوعی محاسبه، درست است؟ و حتی پس از آن، برای انجام این کار شما هنوز هم برای انجام بسیاری از انتظار برای شاید شما باید به پرس و جو از پایگاه داده به نگاه تا که این دوستان با چه کسی یا چیزی شبیه به آن. بنابراین این نوع از مفهوم وجود دارد کار محاسباتی. آیا این را حس؟ آیا هر کسی هر گونه سوال؟ آه، و من حدس می زنم من به سرور چت قرار داده وجود دارد چون سرویس دهنده چت می باشد نوع یک مثال خوب دیگر از این. سرور چت اختصاص ندارد برای انجام این کار فکر کردن زیاد. این فقط باید برای مردم صبر کنید تا ارسال پیام و پس از آن زمانی آنها، آنها را ارسال کنید. OK؟ پس فقط به روکش دوباره، آپاچی و وب سرور مشابه که چنگال بسیاری از موضوعات و فرآیندهای است که می تواند نوع بی فایده. پس من به این سوال که ممکن است حدس بزنید از آن است که ما نیاز به موضوعات و فرآیندهای چند؟ چه اگر ما تنها یکی داشت؟ بنابراین اجازه دهید نوع رنگ تصویر از چه این نگاه می خواهم. بنابراین اجازه دهید تنها یک موضوع استفاده کنید. OK؟ پس فقط این کار را با یک موضوع قابل تصور است. بیایید فرض کنید ما شد واقعا نمی انجام که بسیار مفید می باشد - و هنگامی که من می گویم مفید است، منظورم این است که کار محاسباتی - در آن موضوعات متعدد قبل. بنابراین اجازه دهید نوع از تحکیم همه چیز را به یک موضوع. بنابراین اگر ما یک موضوع است که نوع به حال تنها در اطراف می رود در حلقه و به طور مداوم چک چیزی جدید اتفاق می افتد. بنابراین برای مثال، چیز جدیدی اتفاق افتاده است می تواند به معنای من چیزی از رو پایگاه داده، و یا کسی فرستاده من یک درخواست HTTP جدید. این ها برخی از حوادث که اتفاق می افتد، درست است؟ و پس از آن چه می توانم انجام دهم زمانی که کسانی که تازه چیزهایی اتفاق می افتد در این موضوع مشابه اعدام، این موضوع تنها از اعدام، من می توانم برخی از کد تماس بگیرید که که آن چیز خاصی اداره کند. بنابراین برای مثال، اگر من چیزی رو به عقب از پایگاه داده، من می توانم اجرا من بخش محاسباتی کوچکی از آن است که در واقع فقط به آماده چیز ارسال به کاربر. بنابراین آیا این نوع از معنی؟ اما آنچه واقعا هستند نتایج این؟ درست است؟ از آنجا که ما نوشته شده است تعداد زیادی از کد که - و من فقط رفتن به پرش به آینده در اسلاید اگر که OK. بنابراین اگر برای شما مهم نیست، من فقط رفتن به را قدم به عقب. بنابراین این نوع از چیزی است به نام یک حلقه رویداد. OK؟ و این نوع از پایه ایده پشت Node.js. پس چه Node.js است که واقعا انجام می دهند به عنوان یک وب سرور یک موضوع واحد وجود دارد که اساسا در اطراف که در یک حلقه مانند در حالی که یک نوع از زیر هود از Node.js که به طور مداوم چک کردن، آیا ما چیزهای جدید را دریافت خواهید کرد؟ و سپس آن را گرداننده را اجرا خواهد کرد که به شما در تنظیم. اما یک سوال خوب برای پرسیدن است، چگونه می توان این اتفاق می افتد با چیزهای موجود؟ بنابراین من قرار دادن یک خط کد C که در اینجا در واقع به نظر می رسد مانند آن را باز کردن فایل، درست است؟ من فقط با یک آلبوم بود. بنابراین من تا به حال به او باز کردن یک فایل جدید است. پس راه کد C ما برای عامل - و من حدس می زنم دلیل من فایل را انتخاب بود چرا که این نوع از حد است از کار I / O است که ما در C در انجام داده ام یک حس که ورودی خروجی وجود دارد. بنابراین ما این کد تماس بگیرید که آیا این جمعه باز است. و سپس در خط بعدی ما برنامه، ما هم اکنون می توانید با F کار می کنند. بنابراین این امر می تواند یک نمونه از چیزی که مانند همزمان یا مسدود کردن چون در آن خط اول وجود دارد که ما در حال انتظار تا زمانی که ما دریافت فایل باز. پس در خط دوم، ما می دانیم که ما می توانید با F کار می کنند، اما این بدان معنی است که که خط دوم واقعا نمی تواند اجرا شود تا زمانی که خط اول انجام شده است. آیا این را حس؟ پس این خیلی بد است برای قرار دادن در یک رویداد. و دلیل آن این است که این نوع از انتظار، درست است؟ پس این ما را به عقب برگرداندن به همین. و در حال حاضر ما نمی خواهد حتی بهره مند از موضوعات مختلف و یا فرآیندهای خاطر ما یک موضوع در Node.js. آیا این حس برای همه؟ یک مدعو: صبر کنید. پس چه جایگزینی است؟ KEVIN Schmid در: اوه، بله. من می خواهم برای رسیدن به جایگزینی. OK. بنابراین اگر ما چیزی را به حال که شبیه این بود؟ بنابراین اگر در حال حاضر من ویرایش ج باز کردن یک کمی؟ بنابراین من در همان عبور دو آرگومان مانند قبل. من هنوز دوست دارم آهنگ جدید که او با شد. اما من عبور یک چیز سوم که است این متغیر به نام کد. اما آنچه روشن است در واقع در این زمینه؟ آیا آن را مانند یک متغیر به طور منظم C؟ این یک تابع نیست، درست است؟ و این ممکن است کمی عجیب و غریب به خاطر من در واقع مثل همین الان در حال عبور هستم عمل به یک تابع دیگر. بنابراین یک زن و شوهر از چیزهایی که در مورد این توجه داشته باشید. یکی، من در واقع نمی نامد عملکرد کد. بنابراین شما کد با دیدن ندارد پرانتز سمت چپ، پرانتز راست. من فقط عبور در کد. و در C، چه این که در واقع انجام من یک اشاره گر را به واقعی کد، و پس از آن این می تواند آن را اجرا کنید. اما فقط در مورد آن فکر می کنم که شما با عبور کد برای اجرا وقتی که فایل باز می شود. اما این بدان معنی است که در حال حاضر بقیه برنامه های من است که می تواند انجام دهد چیزهای دیگر، می تواند انجام دیگر ادامه مسائل در حالی که ما، نه واقعا صبر کنید، اما فقط در پشت سر ما که زمانی که باز است، اجرای آن فایل را که کد در بالای صفحه. آیا این را حس؟ و حالا این ایده در پشت Node.js است که کد را در این مسائل کار را با ج بخشی باید بسیار کوتاه و ساده باشد و سر راست است و واقعا نمی شود بسیار متمرکز. این ممکن است برای باز کردن یک فایل دیگر، اما که آن نیز باید بسیار سریع چرا که آن را فقط باید بگویم انجام F دیگری باز کردن و سپس این کد دیگر تماس بگیرید. پس فقط به طور کامل روشن، ج باز که نمی تواند آهنگ جدید کتی پری انجام MP3، که رفتن به بسیار بسیار بلافاصله بازگشت. و پس از آن ما فقط می تواند به ادامه انجام چیزهای دیگر چون همه که در حال حاضر F تماس باز می کند است بگویید اساسا زمینه ای کد باز F باز کردن این فایل و هنگامی که شما انجام می شود باز این فایل ها و یا زمانی که شما آن را از پشت، پس از آن که کد اجرا شود. اما آن در واقع آن کد اجرا کنید. و یک سوال از شما داشتند؟ یک مدعو: شما به نظر می رسید حاکی از چند بار که با اضافه کردن محاسباتی کد فشرده نوعی شکستن [نامفهوم] سیستم هدایت می شود. [نامفهوم]؟ KEVIN Schmid در: این سئوال خوبی است. بنابراین من در واقع نمونه ای از چگونگی دارند شما می توانید محاسباتی ادغام کد فشرده در کمی. بنابراین، هنگامی که ما به نمونه کد را دریافت کنید، من مطمئن باشید به جلو که یکی. این است که OK؟ متشکرم. نام شما چه بود؟ یک مدعو: آرون. KEVIN Schmid در: آرون به ارمغان می آورد بسیار نقطه خوب است، که این است که اگر من تا به حال برخی از کد های ویژه محاسباتی در چیزهای با بخش F، بقیه برنامه من نمی تواند اجرا شود و نمی تواند گوش برای درخواست های جدید و یا هر چیزی تا زمانی که همه چیزهای که تمام شده است. پس اگر من به نوشتن کد گره به طور کلی مگر اینکه ما چیزی شبیه به من قصد دارم نشان می دهد بعد از آن زمانی که ما در نگاه نمونه کد، من باید مطمئن شوید که کد من به کراوات نیست تا این حلقه رویداد. آیا این را حس؟ OK. دانلود. بنابراین Node.js ارائه می دهد این چارچوب است که شما می توانید این رویداد ساخت محور سرویس دهنده با. پس از آن تا این نوع ناهمزمان غیر مسدود کردن I / O کتابخانه، در حالی که کتابخانه استاندارد C است که ما شده ایم کار با، مانند اگر شما فقط استفاده از آنها در راه همان است که ما شده است با استفاده از آنها را با f باز می شود و مسائل، آن مسدود دلیل در واقع شما باید برای صبر که فایل برای باز کردن. اما Node.js به شما می دهد که و آن را اساسا به V8 گوگل روابط جاوا اسکریپت موتور است که به همین که کروم تا در پردازش سریع جاوا اسکریپت به دلیل آن است این موتور V8. بنابراین من می دانم که برای تلفن های موبایل مانند یکی از آن WWDC کنفرانس توسعه دهنده چیزی جایی که آنها فقط پرتاب یک دسته از چیزهایی نامه شماره پردازنده و می گویند این است تا سرد. اما جالب است که آنها این به این دلیل جاوا اسکریپت - یا شاید اگر شما با آشنا نیست جاوا اسکریپت هنوز چون ما نداشته است سخنرانی ها بر روی آن - اما جاوا اسکریپت یک تفسیر زبان. و این نکته بسیار مهم است بیش از حد است. بنابراین آن را برای وب سایت ما مهم سرور به سرعت، درست است؟ و اگر ما فقط در حال اجرا جاوا اسکریپت کد که با تفسیر شد فقط هر مفسر قدیمی ممکن است کند. مزایای بنابراین گره را از داشتن این مترجم V8 فوق العاده سریع می باشد. و من نمی دانم اگر آنها آن را به نام چرا که با کف دست زدن V8 در پیشانی چیزی، اما OK. بنابراین من برخی از نمونه های آماده ایم در این URL. پس از این سمینار، من نوعی از رفتن به بحث در مورد چگونه شما می توانید مجموعه ای گره دریافت ، اما در حال حاضر، من فقط نوع می خواهید از طریق برخی از نمونه های کد به راه رفتن. بنابراین اگر شما می خواهید به دنبال همراه، همه کد منبع وجود دارد در دسترس است. OK؟ پس من این URL ترک برای کمی. و پس از آن من فقط رفتن به سوئیچ به ترمینال. آیا همه خوب با این URL؟ من می خواهم به تغییر به ترمینال من در اینجا. بنابراین در اینجا از کد است که من برای امروز. چرا ما با شروع simpler.js فایل ارسال کنم؟ نکته دیگر این است که همه از این کد رفتن به در نوشته شود که جاوا اسکریپت شما ممکن است یا ممکن است با آن آشنا. من حدس می زنم یک زن و شوهر از چیزهایی است که بسیاری کد جاوا اسکریپت از نوع است نحو و ساختار بسیار شبیه به است C، بنابراین شما می توانید نوع آن را انتخاب کنید تا به عنوان شما به همراه. من سعی کردم به نوشتن بسیاری از کد شروع این در راه است که در شبیه به C به طوری که آن را کمی بیشتر قابل خواندن است. اما ما به عنوان پیشرفت، من خواهم بود نشان دادن برخی از اضافی از ویژگی های جاوا اسکریپت است که می باحاله. اما اجازه دهید در این برنامه نمونه نگاه کنید. من حدس می زنم همه چیز قطع وجود دارد. من فقط رفتن به رفع واقعی سریع اگر که خوب است یا نه. من نمی دانم چه چیزی این است که به انجام. این است که کمی بهتر؟ می توانید از ور و چیزهای را مشاهده می کنید؟ OK. پس خط اول آن است مانند جاوا اسکریپت نسخه از یک متغیر بیانیه. پس فقط به برجسته کردن آنچه که در این صورت، مانند C. نگاه کنید تا این درست مثل شاخص به من گفت: برابر است با سه و یا چیزی شبیه به آن. برای همین من از نوع مشخص نیست. جاوا اسکریپت دارای انواع، اما آن را بسیار به صورت پویا در طبیعت تایپ، پس هیچ نوع از نوع در آن ارائه نمی دهد. پس از آن فقط ور. که مانند متغیر است. OK؟ و من خواستار این HTTP متغیر است. و در سمت راست من، من بیان که من می خواهم در HTTP قرار داده است. و این می گوید نیاز به HTTP. پس این است که نوع مشابه باشد. این کمی بیشتر شبیه قوی تر از شامل به این معنا که شامل فقط کپی کنید و هدر کپی کنید فایل برای نمونه تابع و یا هر چه با تعریف نوع. اما نیاز است که در واقع رفتن به ما این کد را دریافت کنید. بنابراین شما می توانید از آن به عنوان فکر می کنم وارد کردن بعضی از کد. بنابراین در جایی در ماژول Node.js سیستم یا هر چیز دیگری، آنها این همه کد HTTP سرور، بنابراین من فقط هستم آوردن آن را برای خود من استفاده شخصی در این برنامه است. OK؟ پس من این عملکرد را که من نوشته ام. و من متوجه نیست که مشخص نوع بازگشت و یا نوع استدلال دوباره. بنابراین نوع شل در تایپ این نوع از احساس. دو استدلال که طول می کشد در، درخواست و پاسخ. به طوری که مفهومی مثل از تصویری که ما تا به حال آشنا بر روی صفحه نمایش قبل به دلیل ما این درخواست کنید که ما از کاربر داشته باشد. و پس از آن ما باید یک پاسخ که ما می توانیم همه چیز را بنویسید. بنابراین اولین خط از این کار res.writeHead 200 و پس از آن این نوع محتوا متن ساده. بنابراین اجازه دهید این قطعه از هم جدا کم است. بنابراین اجازه دهید فقط در res.write تمرکز برای کمی. بنابراین نوشتن است که اساسا، و ارسال به سر، تنها راه برای نوع نوشتن است همه چیز را به پاسخ. OK؟ بنابراین سر نوشتن، اگر کسی به یاد از سخنرانی HTTP، آیا شما بچه ها به یاد داشته باشید هدر در از چیزی که HTTP؟ پس چرا من فقط نسخه ی نمایشی هدر سریع واقعی است. آیا این مفید است؟ یا باید ما فقط نوع - OK. مطمئن شوید. بنابراین، هنگامی که مرورگر خود را می رود به google.com و یا چیزی شبیه به آن، در واقع کمی بیشتر وجود دارد - این مثل یک راز - مانند اطلاعات کمی بیشتر وجود دارد که می آید از طریق لوله از جستجو کمی و همه چیز. بنابراین به شما این نشان می دهد، من قصد دارم برای استفاده از برنامه ای به نام حلقه. OK؟ بنابراین این چیزی است که شما می توانید در اجرا است خط فرمان مک OSX شما و یا در لوازم خانگی و یا هر چیز دیگری. و به این ترتیب اگر من خم HTTP google.com، من قصد دارم برای دیدن HTML. و این است که، در انصاف، فقط HTML که مرتب سازی بر اساس به شما می گوید به ورود به وب اگر مرورگر خود را نمی کند به طور خودکار رسیدگی به تغییر مسیر. بنابراین این فقط HTML، اما من قصد دارم برای اضافه کردن به حلقه این خط تیره I پرچم. OK؟ و این است که برای نشان دادن من هدر. بنابراین این اطلاعات در می آید که از وقتی که من دریافت این پاسخ. OK؟ بنابراین در بالای صفحه، شما این را مشاهده کنید HTTP 301 حرکت به طور دائم. و این نوع مهم است زیرا این اشاره به کد وضعیت. پس 301 در اینجا کد وضعیت است، است که اساسا فقط یک عدد صحیح که می گوید که مرورگر یا هر کس است خواندن این، اگر شما وانمود شما یک مرورگر هستید و شما با دیدن این، در واقع در حال حاضر اگر شما در نگاه که و شما یک 301، شما می دانید من برای انجام کاری خاص بر اساس 301، و یا اتفاق خاصی افتاده، بر اساس 301. بنابراین آن را می گوید نقل مکان کرد و به طور دائم. و پس از آن، در واقع، ما یک دسته از جفت کلید. بنابراین ما می توانید از محل www.google.com است. و پس از آن نوع از تمام این مسائل دیگر، اما اساسا، محل است گفت محل جدید است است در www.google.com. بنابراین در حال حاضر اگر شما به google.com بروید، شما مرتب کردن بر اساس نوع مرورگر از زدن ببینید برای یک ثانیه و سپس تغییر مسیر می حق بازگشت به www.google.com. پس از پاسخ می تواند شامل این هدر. و چند چیز به اشاره. بنابراین اجازه دهید می گویند ما در واقع موفقیت آمیز بود در بازدید از یک صفحه وب است. بنابراین اجازه دهید من برای رفتن - آنچه که یک وب سایت خوب است؟ من در فکر خوب بد وب سایت ها در نقطه ای. یک مدعو: ویکیپدیا. KEVIN Schmid در: OK. اجازه دهید ویکیپدیا. بنابراین در اینجا من منتقل شد. آه صبر کنید. I بود؟ بله، من بود. OK. بنابراین من به انجام WWW. من می خواهم به انجام WWW. و همانطور که می بینید، در اینجا همه HTML است که مرورگر می روند برای ویکیپدیا. اما اگر من را اسکرول کردن در اینجا، آنچه که من در بالا نگاه کنید - وای، در بسیاری از وجود دارد HTML در ویکیپدیا - اما آنچه که من می توانید در بالا در اینجا مشاهده کنید است این کد 200 وضعیت به عنوان مخالف به 301 که من قبلا دیدم. و متوجه است که آن را خوب OK دوستانه در کنار آن. پس این است که مانند کد وضعیت خوب است. آیا این تعداد 200 نگاهی آشنا نیست؟ بله، زیرا وقتی که من simpler.js انجام داد، من نوشت 200 وجود دارد. به طوری که اساسا و گفت بگو مرورگر و یا هر کس در تلاش است تا به این که آنها موفق بودند. یا که مثل ما خیلی موفق بودند. و در این نوع از نحو ویژه ای وجود دارد در جاوا اسکریپت برای اعلام نقشه از این کلید مانند نوع محتوا و این مقادیر را مانند متن ساده. بنابراین اگر شما به پاسخ نگاه کنید که ما کردم از ویکیپدیا، قبل، - من قصد دارم سعی می کنید به حرکت تا کمی سریع تر - شما باید این کلید مانند سرور و این مقادیر آپاچی. بنابراین شما کلید ها و مقادیر کردم. و شما می توانید این را در مشخص گره چه باید فرستاد. بنابراین در واقع این نوع، در برخی از راه، و در برخی از روش های آن را واقعا، اما آن را به سطح کمی پایین تر است از کد PHP که شما ممکن است نوشتن برای P مجموعه هفت دلیل PHP و آپاچی نوع مراقبت از برخی را از این چیزها برای شما. در PHP، شما می توانید به طور پیش فرض نادیده گرفتن رفتار با نوشتن هدر خود را. اما برای اهداف این، ما برای نوشتن هدر خود ما. بنابراین می کند که خط درست است همه، خط سر نوشتن؟ OK. بسیار معروف. پس آنچه که من انجام شده است I پایان دادن به پاسخ با گفتن سلام جهان است. OK. اما این فقط یک تابع است به نام درخواست برنامه کنترل. بنابراین در حال حاضر من در واقع به نوعی از انجام چیزی با این تابع، درست است؟ بنابراین در اینجا آنچه که من انجام شده است وجود دارد این خط هست که برابر سرور ور HTTP.create سرور، و سپس I پاس در کنترل درخواست. بنابراین این نوع از گره است راه ایجاد یک سرور. و توجه کنید که من عبور در کنترل درخواست. پس این است گفتن createServer تابع است که من می خواهم شما به من یک سرور، و هنگامی که سرور دریافت پاسخ، من باید شما را به به این درخواست تابع کنترل. OK؟ به طوری که خط بسیار زیبا پس از اتمام حق دور. بنابراین خط سرور ور درست انجام شده است پس از شما انجام این کار تقریبا. منظور من، آن را به راه اندازی برخی از داخلی دولت می دانم که شما را به تماس بگیرید که تابع درخواست کنترل، اما آن را نه برای نشستن وجود دارد و مثلا تا به کاربر ارسال می شود من یک درخواست رتبهدهی نشده است؟ تا به کاربر من یک درخواست فرستاده نشده است؟ پس از آن متوقف کند. OK؟ پس چه انجام این کار آن است که اساسا در حال حاضر یک اشاره گر به این کد ذخیره، این درخواست تابع کنترل، و پس از آن که کد اجرا شود وقتی کسی یک درخواست. و بعد ما انجام server.listen. 1337 بسیار خودسرانه وجود دارد. من تا به حال هیچ دلیل خاصی برای چیدن این تعداد. این کاملا تصادفی بود. اما این فقط پورت مشخص می کند. بنابراین اکثر سرورهای وب شما خواهید دید که آنها استفاده از پورت 80 که به دلیل نوع مانند این کنوانسیون. بنابراین اگر من به چیزی شبیه به، من نمی دانم، Wikipedia.org، و من قرار روده بزرگ 8 - آه عجب، شما می توانید ببینید که. من متاسفم. اما اگر من ویکیپدیا - من آن را در اینجا ارسال فقط به طوری که آن را در دوربین روشن است. اما اگر من این را به یک مرورگر با روده بزرگ 80، که مشخص به Wikipedia.org در پورت 80. بنابراین آن را مانند که چگونه ایالات متحده کرده است پورت های متعدد مانند که در آن شما می توانید کشتی همه چیز به نوع. بنابراین آن را مانند رفتن به این خاص است روی این سرور. OK. بنابراین من فقط 1337 انتخاب کرد. یک طیف وسیعی از اعداد وجود دارد که شما می توانید انتخاب کنید. بود که کاملا خاص است. اما آنچه من قصد دارم در حال حاضر است من قصد دارم برای اجرای گره. اجازه بدهید من در واقع وارد کنید که یک زن و شوهر خطوط پایین به طوری که شما می توانید آن را ببینید. من قصد دارم برای انجام گره، و من رفتن به اجرا simpler.js. و ما در مورد چگونه می توانید صحبت کنید گره در کمی گذاشته. اما در حال حاضر آن را فقط در حال اجرا به سرور. بنابراین چیزی که ما می توانید سعی کنید که ممکن است باشد که هیجان انگیز است که ما در واقع می تواند سعی کنید به آن دسترسی داشته باشید در حلقه. بنابراین من می تواند حلقه را انجام دهد، و من ماشین میزبان محلی است. شما همچنین خواهید دید این نوشته مثل این گاهی اوقات. میزبان محلی و 127.0.0.1 می باشد نوع مثل کامپیوتر خانگی خود را. بنابراین آن را مانند صحبت کردن است کامپیوتر خود تغییر دهید. OK. و بعد من می 1337 گویند. پس اگر من این خط از کد اجرا شود، آن را می گوید سلام جهان است. و اگر من می خواستم ببینم که چیزهای که حال متن نوع محتوا ساده و یا هر چه، من حتی می تواند از این قرار است. و متوجه که آن را می گویند OK. و من متن ساده. و پس از آن نوع از همه وجود دارد این دیگر مطالبی که گره اضافه خواهد شد در برای من وجود دارد. که فوق العاده مهم است. منظورم این است که، برخی از نوع های فنی وجود دارد جنبه های که در آن نوعی از سرد به بحث در مورد، اما فقط برای نشان دادن شما، من هم این قدرت را داشته باشد تغییر این اطراف. بنابراین من فقط می تواند اضافه کردن یک دسته از چیزهای مانند آن. و پس از آن در حال حاضر، اگر من در نگاه من خروجی، از آن خواهد شد که. بنابراین این هدر معانی خاص به مرورگرها و مانند آن. و هدر اساسا می تواند به مرورگر بگویید چگونگی پاسخ به چیزی. اگر تا کنون از کوکی ها قبل از شنیده می شود، و یا اگر شما تا کنون اذیت شده است توسط یک صفحه وب ایجاد کوکی ها، و یا تبدیل در بلوک کوکی و یا چیزی شبیه به آن. شما در واقع می تواند کوکی های ذخیره شده در این هدر. به طوری که آنها یک مرورگر چگونه بگویم رفتار در برخی موارد. OK. به طوری که simpler.js بود. آیا هر کسی هر گونه سوال در آن فایل کد منبع؟ OK. دانلود. بنابراین اجازه دهید تحقیق را از که و در simple.js نگاه کنید. پس این است که تقریبا همان برنامه. من فقط آن را نوشت کمی متفاوت چون من می خواستم به نوعی برجسته برخی از ویژگی های جاوا اسکریپت. بنابراین توجه کنید که کنترل درخواست عملکرد کاملا از بین رفت. اوه بله، یک سوال؟ یک مدعو: آره، استدلال که به که گذشت تابع، آنها چه هستند؟ KEVIN Schmid در: بنابراین کسانی که می جاوا اسکریپت اشیاء. در اسناد و مدارک Node.js، آن اساسا می گوید که چه روش ها موجود در آنها. ما فقط اتفاق می افتد که دسترسی به این روش به نام نوشتن سر و پایان و چیزهای مانند آن. اما یک دسته کامل وجود دارد روش بیشتر است. و به عنوان مثال، مانند یکی از آنها به طور خاص در نوشتن، شما می توانید انجام دهید چیزی شبیه به rec.method که خواهد شد شما بگوید که آیا این یک HTTP یا HTTP ارسال درخواست و چیزهایی مانند آن. بنابراین انواع مختلف وجود دارد خواص، اما هر دو آنها هستید جاوا اسکریپت اشیاء، و آنها فقط باید توابع متصل به آنها را که شما می تواند کارها را به نوشتن. OK؟ بنابراین توجه کنید که کنترل درخواست کاملا رفته است. اما کدی که من در درخواست به حال برنامه کنترل است که هنوز هم وجود دارد. من هنوز این res.writeHead دارند و من هنوز هم این res.end داشته باشد. و چه این یک نمونه از در است جاوا اسکریپت این ایده است تابع بی نام. و ناشناس است مانند یک نام مناسب برای آن به دلیل آن را به معنای واقعی کلمه نمی کند یک نام. هیچ درخواست تابع وجود دارد برنامه کنترل در آن وجود دارد. بدون نام، اما هنوز هم است در نظر گرفتن بحث و جدل. پس من هنوز هم نوشتن و RES. و من هنوز کد داشته باشد. این کاملا خوب کد جاوا اسکریپت. بنابراین من می تواند یک تابع بدون اعلام به صراحت به آن نام. این کمی گیج کننده است در ابتدا. برخی از چیزهای مفید مانند وجود دارد که شما می توانید با انجام این توابع بی نام. آیا هر کسی هر گونه سوال در این، و یا آن را OK فقط به، در حال حاضر، نوع فقط شرایط است که آن را خواهد همین کار را بکند؟ بله؟ یک مدعو: آیا توابع اولین کلاس در جاوا اسکریپت؟ KEVIN Schmid در: آنها اول کلاس در جاوا اسکریپت. و فقط می دانیم که این مفاهیم از عبور در یک تابع بی نام مانند این تقاضای خود را به جاوا اسکریپت است که شما ممکن است در پروژه نهایی خود را برای ارسال مرورگر وب بیش از حد. بنابراین برای مثال، در جاوا اسکریپت مرورگر شما، آن را نیز تا حدودی رویداد رانده می شود به این معنا که آنچه به شما داشته باشد زمانی است که کاربر اینجا کلیک را فشار دهید، من می خواهم شما را به اجرای این کد. پس از آن همان نوع ایده از این سمت سرویس گیرنده زمانی که با یک کلیک ماوس و یا آنها ماوس را روی برخی از تصویر خود را در تو صفحه وب، اجرای این کد. است که می تواند به سرویس دهنده اعمال می شود. پس این نوع مانند هیجان انگیز به همین دلیل جاوا اسکریپت است که واقعا افراد مناسب و یا برخی فکر می کنم این زبان مناسب برای این نوع از راننده سرور رویداد دلیل این که شما این توابع بی نام. شما تمام ایده از این کد ناهمزمان. OK. هر کسی هر گونه سوال؟ OK. به طوری که simple.js بود. بنابراین اجازه دهید در یک نگاه و یا یک زن و شوهر است. بنابراین این sleep.js است. بنابراین هر کسی با آن آشنا باشد عملکرد خواب C؟ از شاید یکی از سخنرانی های قبلی و یا چیزی شبیه به آن؟ بنابراین اساسا شما می توانید عبور در من فکر می کنم تعدادی از ثانیه و یا اگر شما با استفاده از U خواب تعدادی از میلی ثانیه و یا نانو ثانیه. و اساسا برنامه را متوقف خواهد کرد در حال اجرا برای آن مقدار از زمان. درست است؟ و سپس آن را از خواب بیدار در نهایت و سپس آن را فقط ادامه در حال اجرا برنامه. پس این سرور نوع می دهد این تصور از خواب. بنابراین توجه کنید که ما باید همان res.writeHead 200 با ضربه سر به عنوان قبل از، اما بعد از آن ما خواستار این تابع نامیده می شود مجموعه ای ایست. تنظیم تایم نیز در دسترس است مرورگر وب شما گوگل کروم و یا سافاری یا هر چیز دیگری. و اساسا آنچه در آن در حال انجام در اینجا است آن را گرفتن در یک تابع. توجه، باز هم، آن را تابع بی نام. پس این نوع از خنک زیرا ما با استفاده از یک تابع بی نام در یک تابع بی نام که می تواند یک کمی عجیب و غریب. اما آن را با در نظر گرفتن که تابع است که اساسا و گفت - و این راه به آثار است در 5000 میلی ثانیه، من می خواهم شما برای اجرای آن تابع است که فقط به پایان می رسد پاسخ و می نویسد: با سلام. بنابراین این تصور می دهد مانند خواب، اما این راه در واقع کار می کند این است که ما را از طریق اجرا این خط بسیار به سرعت. ما فقط نوشتن چیزی. و سپس ما همچنین می خواهیم از طریق اجرا این خط بسیار به سرعت. پس ما در واقع نمی صبر کنید پنج ثانیه صورت گرفت. ما فقط این رو برای اجرای این کد را فورا. و پس از آن وجود دارد، دوباره، این کمی حلقه صورتی که در حال حاضر این چیز ثبت است که اساسا فقط به طور مداوم رفتن در اطراف در یک دایره و به دنبال در ساعت در یک موضوع و گفت، تا پنج ثانیه تصویب نشده است؟ و پس از آن زمانی که آن را می بیند که دوم دست است مانند پنج ثانیه و یا نقل مکان کرد هر، سپس آن را از خواب بیدار و می گوید: آه، چه کار باید انجام دهم؟ اوه من برای اجرای این کد. و سپس آن را به اجرا res.end سلام. پس باز هم، ما در حال انتظار هرگز در اینجا. پس از آن نیست که این کد را داخل این تابع می گذرد را به پنج ثانیه به اجرا شود. این کد را اجرا خواهد کرد تقریبا بلافاصله، حداقل نسبت به پنج ثانیه که ما صحبت می کردند در مورد اول قبل از. بنابراین فقط برای نشان دادن این در عمل، من می توانم Node.sleep.js انجام دهد. و من میکشید تا چیزی؟ احتمالا. متأسفم. اجازه دهید ببینیم که چه چیزی ما می توانیم برای حل این مشکل. OK. پس قطعا استفاده از Node.js. من فقط شوخی. OK. فقط یک ثانیه. OK. من می دانم آنچه در آن است. بنابراین مسئله این است که در تب های دیگر من در اینجا، من در حال اجرا گره در حال حاضر در که آدرس همان، 1337. بنابراین خطا است که این پرتاب کرد، اگر ما نگاه در آن واقعی نزدیک، آدرس در است استفاده، EADDRINUSE. بنابراین من در حال حاضر با استفاده از 1337 اینجا. پس اگر من این خاموش، و سپس من در حال حاضر سعی کنید برای اجرای این، امیدوارم، همه چیز خوب خواهد شد. OK. بنابراین شما فقط می توانید یک چیز مرتب سازی بر دارند از گوش دادن به یک درگاه در یک بار. راه حل دیگر را برای من بوده است فقط به ویرایش آن برنامه و آن را مانند 1338 یا چیزی می شود مانند آن. اما در حال حاضر خواب در حال اجرا است. بنابراین اجازه دهید در واقع آن را امتحان کنید در مرورگر این زمان به خاطر آن غیر جذاب کمی برای دیدن آن را در یک ترمینال. بنابراین من فقط رفتن به رفتن به آن 127 آدرس دوباره در 1337. و اگر شما می توانید آن را ببینید - من اگر شما می توانید نمی دانند - اما من مرورگر گرفتن بسیار بسیار طولانی زمان برای بارگذاری و یا مانند پنج ثانیه صورت گرفت. و پس از آن، آن را در نهایت پاسخ به پایان رسید. و شما نمی توانید آن را ببینید به این دلیل که چیزی است بیش از یک کمی نقل مکان کرد، اما اگر من را این کمی کوچکتر، به شما می توانید ببینید که آن را می گوید سلام. بنابراین من هی، اما پس از پنج ثانیه صورت گرفت. و این ممکن است یک پاک کننده کمی برای دیدن آن را در اینجا در ترمینال، پس من هستم رفتن به انجام - اجازه دهید در اینجا انجام - اجازه دهید به حلقه است که آدرس را انجام دهید دوباره با 1337. و من فقط نوع مجبور به نشستن در اینجا برای پنج ثانیه صورت گرفت. اما توجه کنید که سرور می تواند پاسخ های جدید را بپذیرید. پس از آن چاپ با سلام. و نسخه ی نمایشی این، اساسا چه من می توانم در این برگه دیگر را انجام دهید - بنابراین اجازه دهید بگویم من این کار را در یک برگه دیگر، من قصد دارم برای انجام حلقه و همان چیزی که دوباره. و من قصد دارم به تلاش برای پا زدن به این بچه کردن در همان زمان. من می خواهم به انجام این کار، و من رفتن به مسابقه اینجا و من رفتن به آن را دوباره. و اجازه دهید آن را به طوری که شما می تواند هر دو از آنها را ببینید. این یکی چاپ سلام و یک چاپ شده: سلام به همه راه در - اجازه دهید انجام این آزمایش دوباره. در واقع، اجازه دهید این استفاده کنید فوت و فن، در صورتی که OK. من می خواهم به استفاده از یک چیز پوسته که اجازه می دهد تا به من اساسا دو نسخه اجرا این برنامه به صورت موازی. بنابراین آن را به برنامه برای اولین بار اجرا و برنامه دوم به صورت موازی. بنابراین در حال حاضر اگر من فشار وارد کنید، این رفتن به این درخواست بسیار بلافاصله در همان زمان. بنابراین اجازه دهید این را به گلوله بست. بنابراین در حال حاضر متوجه آن می گوید دو فرایند. و اگر شما کنجکاو هستید، که 27،000 تعداد اساسا ID روند. و پس از آن متوجه آنها چاپ شده با سلام در همان زمان. این بود که ما تا به حال به صبر و پنج ثانیه برای یک و سپس بعد از آن، پنج ثانیه بعد دریافت کنید دوم. به طوری که به نوعی، در برخی از راه، آن را واقعا شواهد، اما آن را شواهد بصری است که آن را فقط نمی مثل انتظار پنج ثانیه و مسدود کردن تمام موضوع. OK سرد. پس، هارون یک سوال پیش از آن که بود، خوب اگر ما کاری انجام دهد - بله؟ یک مدعو: صبر کنید. چگونه است که متفاوت از بافر چون printf، هر چند؟ آیا آن را به طور خودکار انجام این کار؟ چرا ما باید در مورد آن نگران؟ KEVIN Schmid در: اوه، می تواند شما می گویند که یک بار دیگر؟ یک مدعو: آیا بافر چون printf را دوست ندارد همین کار را دقیق؟ KEVIN Schmid در: بافر چون printf؟ یک مدعو: آره. OK. در یکی از آزمونها آنها بود صحبت کردن در مورد چگونه اگر شما راست چون printf چیزی و سپس آن را به توقف یک دوم، و سپس شما آن را حلقه ده بار، آن را ده ثانیه صبر کنید و پس از آن همه چیز با هم چون printf؟ KEVIN Schmid در: اوه، OK. یک مدعو: آیا انجام همان چیزی که پس از آن در این مورد؟ KEVIN Schmid در: بنابراین سوال این بود اساسا در یکی از آزمونها سابق و یا چیزی، یک سوال وجود دارد که در واقع اگر شما می گویند چاپ جمعه 10 همه چیز در یک زمان و سپس مانند در خواب روند چاپ آن از، در پایان برای برخی از دلیل، آن را فقط کسانی که همه بر روی صفحه نمایش کمپرسی. بنابراین نوع دو متفاوت وجود دارد مفاهیم در اینجا. بنابراین من حدس می زنم یک چیز است که، در این مورد، ما در حال برخورد با دو مختلف مرتب کردن بر اساس از مردم درخواست سرور برای چیزهایی که در همان زمان. و به این دلیل که آن نوع چون printf از منتظر مانند که و آن همه افسردگی از در یک بار بیشتر مربوط به است چگونه نوع چون printf از - بنابراین راه چون printf است که در واقع پیاده سازی شده است اساسا به صحبت کردن با سیستم عامل به ارسال چیزهای که به کنسول. پس آن را نمی خواهد برای انجام تمام است که مسائل بلافاصله پس شما می گویند چون printf برخی از رشته دلیل است که می تواند دریافت گران است اگر آن را به انجام این کار در هر بار. بنابراین اگر شما انجام دهید چون printf با سلام، برنامه خود را ممکن است در واقع چاپ که بلافاصله به کنسول. این ممکن است بگویید، OK، من آن را نوشتم. و پس از آن نوع صبر را برای شما به آن را کمی بیشتر قبل از واقع نوشتن آن را به کنسول. بنابراین به این دلیل که که مورد - و این نوع از نامربوط به خواب - این است که خواب مرتب سازی بر تنها بود تزریق در آن وجود دارد برای نشان دادن این واقعیت که آن را ارسال نمی کند آن را به صورت همزمان. اما دلیل آن است که فقط عملکرد به طوری که شما لازم نیست که ایجاد ارتباط است که بسیاری از به سیستم عامل. اما در اینجا، آنچه که ما واقعا تلاش برای انجام با این چیزی که خواب فقط نشان می دهد که هنگامی که ما دو نفر از بازدید این وب سایت، آن را برای قرار دادن آنها را در یک خط که در آن رفتن به می گویند من باید به شما کمک کند، و پس از آن زمانی که من هستم کاملا به پایان رسید کمک به شما بعد از این پنج ثانیه، و سپس من قصد دارم حرکت بر روی شخصی که در کنار. بنابراین درخواست اولین کسی را نمی کند کراوات که حلقه رویداد در صورتی که حس می کند. اما در اینجا است که در واقع نمونه از چیزی است که کراوات خواهد تا حلقه رویداد. بنابراین در اینجا یک تابع وحشتناک به این محاسبه فیبوناچی n ام. این به معنای واقعی کلمه راه بدتر شما می توانید محاسبه عدد فیبوناچی n ام. و این است که در واقع فقط به اذعان که این از، آمد در واقع وجود دارد - منظور من، شما می توانید سعی کنید به پیدا کردن آن - اما مانند یک وبلاگ بسیار طولانی وجود دارد ارسال که کسی نوشت. آن را مانند یکی از آن چیزهایی ق است. اما کسی انتقاد قرار Node.js، و آنها این را به عنوان نمونه استفاده می شود. بنابراین من از نوع میخواست شما دو نشان دیدگاه های مختلف فقط برای گرفتن یک درک کلی از مفاهیم در پشت این دو چیز. اما این فقط به عنوان یک وحشتناک انتخاب، محاسباتی به طرز وحشیانه ای ناکارآمد راه های ویژه برای محاسبه عدد فیبوناچی n ام. پس فقط یک نکته، به همین دلیل است آن وحشتناک مانند در یک راه؟ بله؟ یک مدعو: بگو که شما شروع به با 1000. 1000 تقسیم به 999 و 998. هر یک از این تقسیم به دو چیز. هر یک از این تقسیم به دو چیز. KEVIN Schmid در: راست. رسید تمام راه را. KEVIN Schmid در: دقیقا. پس فقط به تکرار برای دوربین، اگر من تماس دروغ گفتن در مثل 1000 و یا چیزی مانند آن، آن را به وضوح کمتر از نه و یا با یک برابر من می خواهم به به این صورت دیگری، و سپس من قصد دارم تماس بگیرید دروغ گفتن 999 به علاوه دروغ گفتن 998. و پس از آن تقریبا همه از آن کاری که دروغ گفتن 999 می کند نوع در این سطح. اگر شما به پایین، آن را حتی بیشتر از کار برکنار از آن است، اما اگر شما فقط فکر می کنم محاسبه دروغ گفتن 998 می شود ما بسیار نزدیک به دروغ گفتن 999. بنابراین ما واقعا باید کمی بیشتر است هوشمندانه در مورد ما چگونه نوع استفاده مجدد این، اما ما در حال استفاده مجدد نمی این چیزها در همه. بنابراین شما می توانید این غول پیکر تصور کنید، درخت غول پیکر که فقط وحشتناک. اما به هر حال، OK. به طوری که دروغ گفتن بود. این فقط طول می کشد در حالی که برای اجرا شود. بله؟ یک مدعو: [نامفهوم]. KEVIN Schmid در: اوه، می تواند شما سوال تکرار؟ یک مدعو: [نامفهوم]. KEVIN Schmid در: اوه پس از این کد تنها است که برای رفتن به نوعی در سمت سرور. پس این است که نمی شود در بر داشت در مرورگر یا هر چیزی. این اساسا آنچه که ما را این است که وقتی کاربر در اینجا باعث می شود تقریبا درخواست خود را دوباره، زمانی که ما نوعی از یک درخواست، ما قصد داریم به تماس این تابع در سمت سرور. و پس از آن خواهیم در نتیجه به عقب بر گردیم از تماس آن تابع. و پس از آن ما فقط چاپ آن را به کاربر. به طوری که کاربر واقعا نمی مقابله با این تابع بیش از حد. که سوال این بود؟ آیا این را حس؟ OK. دانلود. پس باز هم، ما تمام این res.writeHead چیزی که در آن ما از چاپ هدر. و بعد من پایان دادن به پاسخ های انجام تعداد سحر و جادو دروغ گفتن 45 است. بنابراین اجازه دهید فقط این سرور را اجرا کنید. من می خواهم به انجام fib.js. گره بنابراین در حال حاضر سرور دروغ گفتن من در حال اجرا است. و سپس در اینجا، من قصد دارم به انجام یکی از این. OK؟ بنابراین من فقط رفتن به می گویند، حلقه. پس از آن رفتن را به مدتی کم، ولی امیدوارم به زودی آن را به پایان برساند و از آن خواهد شد که 45 نسخه قابل چاپ عدد فیبوناچی. یک مدعو: [نامفهوم]. KEVIN Schmid در: لازم دریافت به زودی انجام می شود. پس از آن باید 5-6 ثانیه را انجام دهد. من نمی دانم که فقط V8 که فوق العاده است سریع، اما در هر صورت، این است که به عنوان مثال بسیار کوتاه و به عمد نا زیبا از یک غیر بدیهی محاسبات. بنابراین پس از مدتی، این کار در این. اما در حال حاضر، چه می شود اگر من که همان نوع از آزمایش به عنوان قبل از جایی که من را دو درخواست در همان زمان؟ بنابراین در اینجا من قصد دارم به یک حلقه در که آدرس، و من قصد دارم برای انجام این کار حلقه دیگر. و به یاد داشته باشید، زمانی که ما این کار را برای انجام خواب سرور، زمانی که ما اساسا آن را به حال پس از پنج ثانیه، آنها بسیار اندازه هر دو آمد راست در حدود همان زمان. پس از آن بود به خصوص نه گره خورده است. اما اجازه دهید در حال حاضر آن را امتحان کنید. OK، بنابراین ما دو فرآیند ما است. به یاد داشته باشید کسانی که شناسه روند. این است که برای رفتن به یک کمی بی دست و پا در حالی که ما متوقف کند. بنابراین اجازه دهید فقط به ماندن در اینجا و صبر کنید. بنابراین یکی از آنها باید آمده پس از مانند - OK، بنابراین برگشتم. اما چرا در دوم نمی یک آمده فقط رتبهدهی نشده است؟ بله؟ رسید سرور می تواند هر چیزی را انجام دهید در حالی که آن را به محاسبه این تعداد بزرگ است. KEVIN Schmid در: راست. بنابراین پاسخ این بود که فقط سرور واقعا می توانید هر چیزی را انجام دهید در حالی که آن را محاسبه است که عدد فیبوناچی. بنابراین در حال حاضر من فقط دو چیز من است. اما من حدس می زنم فقط در مورد کد فکر می کنم کمی بیشتر، چگونه کار می کند و همه چیز. پس این تابع در اینجا فعال است که من این سرور گفته ام را به اجرا زمانی که آن را یک درخواست ورودی جدید دریافت می کند. پس این فقط رفتن را از طریق این اجرا کد کل، و سپس آن را به پشت به حلقه رویداد و پس از آن ادامه برای چک کردن رویدادهای جدید. بنابراین اساسا آنچه که اتفاق می افتد است که به سرور است گوش دادن به چیزهای جدید. اولین کسی که برای آنچه که 45 است می پرسد. ما اجرای این کد به آن را محاسبه کنند. این کد طول می کشد حدود پنج تا شش ثانیه به اجرا شود. سپس ما به بازگشت به حلقه رویداد را بررسی کنید و درخواست های جدید. بنابراین این یک مثال از اینکه چگونه است، اگر شما باید چیزهایی که به اصطلاح محاسبه محدود، و یا استفاده از بسیاری از محاسباتی، نه قدرت، بلکه مانند متمرکز - من حدس می زنم یک چیز این باره می گویند است که این عملکرد در حال انجام است در مجموع، در بیشتر قسمت ها، زیبا مفید راست کار می کنند. تمام زمان که پاسخ به تماس تابع در حال اجرا بود، آن را بسیار بود حد هزینه های بسیاری از وقت خود را فقط محاسبات عددی است که فیبوناچی n ام. اما ما تنها یک موضوع بود برای مقابله با. در مدل آپاچی، وقتی دو نفر ساخته شده به درخواست برای دریافت دروغ گفتن 45، ما را دو موضوع متفاوت است. و پس از آن کار سیستم عامل را در سطح کاربر بوده است، و یا کد که مدیریت موضوعات، حالا تو رو به قطعه که در است CPU، و یا حتی اگر شما چند CPU به حال، توزیع آنها را به طور مساوی در سراسر پردازنده به طوری که آنها هر دو پایان بود تقریبا در همان زمان. پس فقط به شما نشان دهد که چگونه می توانیم از مرتب سازی - و این است که کامل کل نیست راه حل، اما نوعی که چگونه ما می توانیم را دوباره در اینجا و انجام کمی بهتر است. پس چه من در اینجا برنامه ای به نام است دروغ گفتن C. و این در واقع با استفاده یکی دیگر از ماژول های گره نامیده می شود ماژول فرآیند فرزند. بنابراین من شامل است که در نوع بالا مانند من یک پوند انجام عبارتند از process.h کودک و یا چیزی. در حال حاضر من دسترسی به این متغیر CP دارند که دارای تمام قابلیت ها است. بنابراین در حال حاضر آنچه که من انجام می دهند در این پاسخ هستم کنترل است من در حال اجرا این برنامه نقطه بریده بریده دروغ گفتن 45. پس آنچه که من انجام داده ام - و من فقط رفتن به مرحله از این برنامه را برای کمی - است من یک برنامه C نوشته شده است که اساسا محاسبه عدد فیبوناچی n ام. بنابراین در اینجا فقط یک برنامه که من نوشته ام در C که این محاسبه. من می توانم آن را کامپایل و I می تواند اجرا شود آن را در خط فرمان. و آن را به محاسبه تعداد 45 فیبوناچی. بنابراین متوجه آن فقط طول می کشد تقریبا به عنوان طولانی است. من احتمالا می تواند فاصله 03 استفاده می شود بهینه سازی آن و یا چیزی شبیه به آن، اما من فقط می خواهم به طور منظم انجام تنظیمات کامپایلر. و آن را چاپ کنید. اما در حال حاضر، چه هستم من در نوع انجام می دهند؟ اوه متاسفم، فایل اشتباه است. بنابراین من همان است که با هدر مانند قبل. سپس من این کار را cp.exec. پس چه است این است که به انجام آن است رفتن به اجرای این برنامه است. اما راه این کار این است که آن را به صبر که برنامه را به پایان برساند. این فقط اساسا می گوید اجرای این برنامه است. بنابراین اساسا این نوع به فرمان نوع سریع. و پس از آن، هنگامی که شما با انجام آن، اجرای این تابع. بنابراین در حال حاضر ما به نوعی از این دریافت چیزی که تمام ترمیم های مانند ما در حال انتظار نیست. آیا این نوع را حس؟ بله؟ یک مدعو: [نامفهوم]؟ KEVIN Schmid در: بنابراین این در واقع باز کردن یک فرآیند جدید به آن انجام دهد. پس این است که در واقع، در برخی از راه، شر، فوق العاده بد نیست، اما آن را توجه است که این نوع است رفتن به، از یک سو، آپاچی مدل که در آن کار می کنیم موضوعات و فرآیندهای برای هر درخواست یا پروسه برای هر درخواست. بنابراین این نوع مشابه است به چه آپاچی می کند. در برخی موارد، آن را فقط استفاده خواهد کرد جدید موضوع است، که یک کمی نور بیشتر وزن از یک روند، اما آپاچی می تواند تا پایان forking فرآیند جدید است که نوع آنچه ما در اینجا به طور ضمنی با انجام نقطه اسلش دروغ گفتن 45. و سپس در آن صورت، ما به نوعی متحمل هزینه های همان فرایند. پس این فقط یک چیز شما می توانید انجام دهید این است. اما فقط این نوع از در حال اجرا را نشان می دهد. و این بحث این است که فقط واقعا در هدف ارائه این نوع از برنامه ها به عنوان یک راه برای نشان دادن دیدگاه های مختلف در نحوه طراحی سرور مانند آن. بنابراین این در حال اجرا است، و پس از آن در حال حاضر اگر من انجام این دوباره، من دو شناسه فرآیند کردم. اجازه دهید بحث در مورد همه چیز به اشاره. بنابراین توجه کنید که آنها تدریجی است. که هوا خنک است. از آنجا که آن 27122 قبل بود. اما توجه کنید در حال حاضر، آنها آمدند تقریبا در همان زمان. و در حال حاضر، یک سوال خوب است به سوال در مورد به همین دلیل بود که مورد است، کار که در حال حاضر آن بود به نوعی از این چیز ها را نوع عادلانه بازی کردن با هر دیگر، این دو نمونه از نقطه اسلش دروغ گفتن 45 که من فرار یا که فرار گره؟ چه کسی به نوعی باعث می شود که آن را عادلانه هر دو آنها دریافت نوع و متعادل کننده زمان اجرا؟ یک مدعو: [نامفهوم]. KEVIN Schmid در: آره. بنابراین اساسا، وقتی من دروغ گفتن اسلش نقطه 45 و یا چیزی شبیه به آن، در حال حاضر آن را نوع تا سیستم عامل به رسیدگی به زمان اجرا از آن برنامه ها. و در حال حاضر می تواند آنها را برنامه در پردازنده های مختلف و یا آن را می توانید آنها را برنامه ریزی. این می تواند تکه کردن زمان که یک CPU آن می شود و یا اینکه آنها را دریافت کنید در یک CPU اجرا شود. به طوری که این ایده در پشت آن است. آیا این حس برای همه؟ بنابراین در حال حاضر گره است که واقعا بازی نیست در تقسیم کردن این وظایف. OK. به طوری که تقریبا آن را برای نمونه های. من فقط می خواستم برای نشان دادن یک چیز بیشتر چرا که بسیاری از این تا کنون شده است کاملا فوق العاده عملی نیست در برخی موارد. من می توانم تصور آمدن به خانه بعد از این بحث و چیزی و گفت: مثل، خوب من نوع از آن بحث کردم که من می توانم در سرور فیبوناچی را پروژه نهایی من است. بنابراین در اینجا فقط به نوع یک نمونه بیشتر که امیدوارم - شاید نه، اما شاید - کمی بیشتر نوع مربوط به پروژه نهایی و فکر کردن در پیش رو برای چیزهایی مانند آن. بنابراین این chat.js. است بنابراین این نوع دوست از برخی از نمونه سرور کد سمت که شما می توانید به استفاده از راه اندازی یک سرور چت کوچک مثل شما ممکن است در دیده فیس بوک چت و یا هر چیز دیگری. بنابراین من نمی گویم این مثل فیس بوک چت، اما این نوع از مانند خوب - شاید خوب نیست، اما شاید نقطه شروع برای چت - خوب سرور برای وب سایت شما برای یک پروژه نهایی است. بنابراین اجازه دهید نگاهی به آنچه در آن در حال انجام است. بنابراین ما در حال گرفتن این چیز ویژه در بالا، این ور SIO برابر نیاز Socket.IO. بنابراین این یک چیز دیگر که آن را نمی کند است در واقع آمده همراه با گره اما شما می توانید آن را نصب کنید. این یک ماژول گره است. پس از آن درست مانند برخی از گسترش به گره. SocketIO است که در واقع واقعا نوع سرد. این یک انتزاع است که اساسا آنچه آن است آن را به شما اجازه می دهد تا به این جریان ارتباطات بین یک وب مرورگر و وب سرور. بنابراین در بیشتر قسمت ها تا کنون، ما تا به حال این بسیار سریع یک دوم یا دو ارتباطات ثانیه در میان یک وب مرورگر و وب سرور است. بنابراین آن را اساسا به google.com، دریافت به مواد، ارسال آن به پشت، و پس از آن ما در حال انجام می شود. ما هرگز دوباره صحبت کردن تا زمانی که انواع کاربر در چیز دیگری. اما آنچه Socket.IO و مشابه آن همه چیز - و SocketIO است که در واقع یک از چیزهایی است که بر روی عنوان ساخته شده است WebSocket که مرتب سازی بر اساس دسترس به عنوان بخشی از HTML5 - که اجازه می دهد تا شما را به این گفت و گو ادامه دارد. و این بسیار مفید در سرور چت نوع از چیزی که به خاطر آن است نوع مانند یک گفتگوی مداوم در برخی از روش های چون اگر شما در حال چت با کسی، شما هم اکنون می توانید فقط ارسال پیام پایین لوله، و پس از آن سرور می تواند یک پیام را ارسال لوله را به فرد دیگری شما چت با. و سپس شما می توانید این را تبادل مانند آن. بنابراین این نوع از چه SocketIO خوبی برای است. به این دلیل که SocketIO با استفاده از WebSockets به عنوان یک چیز است که در علاوه بر WebSockets فقط ساده قدیمی، همچنین این برخی از جواب ها به اساسا مرورگر آن سازگار است. بنابراین مرورگرها مانند اینترنت اکسپلورر متاسفانه WebSockets را پشتیبانی نمی کند حق خارج از جعبه. پس از آن با استفاده از نوع دیگری از سرد شسته و رفته همه چیز با ادوبی فلش اجازه می دهد تا شما به پشتیبانی مرورگر متقابل. به طوری که واقعا مفید است. و در واقع، من می دانم من از نوع هستم در حال اجرا در زمان در اینجا، اما CS50 بحث، آیا تا بحال چیزی دیده می شود مانند، من نمی دانم، خالی چنین و چنان است پاسخ دادن به این ارسال یا چیزی مانند آن، که ویژگی؟ این SocketIO است. بنابراین، هنگامی که کسی شروع می شود تایپ کردن در جعبه بحث را به یک پاسخ و یا چیزی، مرورگر شما از چه نام در SocketIO نوعی از خود ساطع میکند، صورتی که می گوید کسی پاسخ دادن به این ارسال. سپس سرور می گوید، OK، چه کار باید انجام دهم؟ خوب حالا من باید بگویم آن دسته از بچه های دیگر که در CS50 است بحث به دنبال در این پست که کسی را پاسخ دادن. بنابراین این نوع از چیزی است که SocketIO است است خوب برای این نوع ادامه جریان گفت و گو. OK. پس چه من در اینجا - و ما تنها رفتن به چشم پوشی از آرایه اتصالات برای کمی - آنچه که من انجام شده است من دیگر گوش دهید. به طوری که تنها راه در Socket.IO است گفت: اجازه دهید در این پورت گوش دادن. و پس از آن من این کار را در اتصال. به طوری که فقط اساسا سوکت IO است راه گفت: هنگامی که ما دریافت می کنیم اتصال، من می خواهید برای اجرای این کد. و توجه کنید که به جای داشتن نوشتن و RES گذشت در وجود من سوکت. و این ایده سوکت است که اساسا این چیزی که شما می توانید به خواندن و نوشتن از آن است که کاربر پیام احتمالا. و پیام هایی که شما می توانید ارسال می توانید از طریق سوکت بروید. آیا این را حس؟ پس از آن این چیزی که مداوم است. پس آنچه که من انجام شده است I Socket.emit تماس بگیرید. و منتشر طول می کشد بسیار بسیار دو آرگومان. آرگومان اول رشته ای است فقط به نمایندگی از نوع چیزی که شما در حال ساطع. بنابراین برای این مورد، من استفاده این رشته پیام های جدید. و این فقط اساسا و گفت که نوع این چیز، چیزی که من هستم ارسال یک پیام جدید است. بنابراین شما می توانید برای انواع خاصی گوش مانند پیام جدید و یا هر با استفاده از نقطه در. بنابراین ارتباط و کاربر وجود دارد اگر فرستاده می شود، شما در جایی که ما نقطه در تماس نگاه کنید، کسانی که رشته های دیگر است که نشان دهنده انواع پیام های کاربر. پس از آن در واقع شما می توانید این EMIT دارند یکی از این نوع پیام، و پس از آن انجام کاری در پاسخ به یکی از این نوع پیام پس من ساطع این ارسال جدید است. ما قصد داریم به چشم پوشی connections.push برای یک ثانیه. اما پس از آن من می گویم، کاربر Socket.on ارسال می شود. بنابراین در حال حاضر این نوع مانند وقتی که کاربر یک پیام به من می فرستد، من می خواهم شما برای اجرای این کد. و توجه کنید که که تابع بی نام در حال انجام در این متغیر نام داده است که اساسا رفتن به پیام کاربر است. نوع پس به صحبت در مورد آرایه اتصالات. پس این برای چت طراحی که در آن اساسا همه نوع در اتاق چت همان. بنابراین اساسا، آنچه که ما نیاز به نگه داشتن در اطراف برخی از آرایه است که اساسا نشان دهنده همه مردم چت در برخی از راه، در صورتی که حس می کند. درست است؟ از آنجا که ما باید بدانند که آن بچه ها می باشد بنابراین ما می توانیم به آنها پیام ارسال که مردم دیگر به ما. پس چه از این کد می کند هنگامی که کاربر است می فرستد یک پیام - که نوع است رویداد - ما قصد داریم برای اجرای این کد. و چه کار می کنیم این است که ما از طریق این اجرا مجموعه ای که ما ارتباطات به نام. و تقریبا برای هر اتصال به جز یکی که ما، که این کد می گوید، ما ارسال جدید ارسال با پیام متصل اطلاعات. بنابراین اگر شما متوجه در اینجا، آنچه من انجام داد هنگامی که کاربر در واقع باعث می شود جدید اتصال I با اضافه شده است روش JavaScript.push، این است که اساسا فقط گفت مثل اضافه که سوکت به عنوان یک ارزش به آرایه ارتباطات ما. بنابراین در حال حاضر زمانی که این کد اجرا می شود، آن را ارسال چیزها را به کسانی خاص اتصالات. بنابراین این می تواند یک نقطه شروع خوب برای ساخت سرور چت و یا چیزی مشابه آن. و نوع نکته جالب این است که کدی که شما در اینجا مشاهده کنید برای مثل در و منتشر می کنند و چیزهای مانند آن همان است نوع از کد های جاوا اسکریپت است که شما می ارسال شده در مرورگر را به ارتباط برقرار با سرور. به همین دلیل SocketIO است نوع شسته و رفته و در آن راه مفید است. آه و فقط یه چیز سریع واقعی است. سال گذشته یک پروژه نهایی CS50 وجود دارد که اساسا به اجرا در چت سرور در Node.js. من فکر می کنم Harvardchats.org اما من نه - OK. من مطمئن هستم که آنچه را که URL است نیست، اما من می توانم از ارسال که پس از آن. اما این نوع از خنک چه شما می توانید با Node.js. انجام بنابراین من امیدوارم که، به طور کلی، شما بچه ها حس خوبی از آنچه Node.js مفید است و چگونه می شاید می تواند اعمال می شود به پروژه نهایی خود را. من خواهد شد ارسال از برخی بیشتر منابع همراه با این. و شما برای آینده تشکر می کنم. متشکرم. [تشویق حضار]