เควิน SCHMID: สวัสดีทุกคน ยินดีต้อนรับเข้าสู่การสัมมนา CS50 บน Node.js. ชื่อของฉันคือเควิน ฉัน CS50 TF และฉันจัดเรียงของชอบตื่นเต้นมาก เกี่ยวกับการสัมมนาครั้งนี้ ผมคิดว่า Node.js เป็นเย็นมาก ผมหวังว่าการสัมมนาครั้งนี้สามารถนำมาใช้ เป็นที่ดีผมคิดว่าการกระโดด บางส่วนของโครงการขั้นสุดท้ายของคุณถ้า คุณสนใจในการใช้ สิ่งที่ต้องการ Node.js. เราจะเรียงลำดับของการเริ่มต้นการสัมมนาออกโดย เพียงการพูดคุยเกี่ยวกับเล็กน้อยของ ชนิดของความยืดหยุ่นที่พื้นหลัง มุมมองของ Node.js แล้ว เราจะย้ายไปตัวอย่างโค้ดบาง และฉันจะมีรหัสบนเว็บไซต์ที่ และคุณสามารถดูรหัส และหลังจากการสัมมนาที่ฉันจะเรียงลำดับของการพูดคุย เกี่ยวกับวิธีการที่คุณสามารถตั้งค่า Node.js ในคอมพิวเตอร์ของคุณ ตกลง ดังนั้นขอเริ่มต้น ดังนั้นผมคิดว่าผมแค่อยากจะพูดคุยเกี่ยวกับ เว็บเซิร์ฟเวอร์จริงๆเป็นครั้งแรก และเริ่มต้นการสนทนานี้ผม โดยทั่วไปมีแผนภาพซึ่งมาจาก ตำราเรียนที่ใช้สำหรับ CS61 ซึ่ง โดยทั่วไปแสดงให้เห็นถึงการทำงานร่วมกัน ระหว่างกระบวนการของลูกค้าเช่นเดียวกับเว็บของคุณ เบราว์เซอร์หรือชอบของลูกค้าเป้าหมายของคุณหรือ สิ่งที่ต้องการที่และเว็บเซิร์ฟเวอร์ ดังนั้นชนิดของลักษณะคล้ายกับ ภาพที่คุณเห็นในการบรรยายเกี่ยวกับ พุธที่โดยทั่วไปเรามีบางส่วน กระบวนการของลูกค้าเช่น Google Chrome และจากนั้นขั้นตอนที่หนึ่งคือ ลูกค้าส่งคำขอ เพื่อให้สามารถเป็นสิ่งที่ชอบให้ดี เยี่ยมชมผมไม่ทราบ CS50.net ดังนั้นเราจึงออกว่าขอ และไม่มีใครจำชื่อของ โปรโตคอลที่ระบุวิธีที่ ขอควรจะมีโครงสร้าง? ครับ ผู้ชม: [ไม่ได้ยิน] เควิน SCHMID: แน่นอน ดังนั้นจึงเป็นเช่น HTTP ใช่ไหม ดังนั้นโดยทั่วไปข้อกำหนดสำหรับวิธีการที่ ขอให้จริงควรจะวาง ออกเพราะ ณ สิ้นวันที่ ขอให้เป็นจริงเช่นเดียวกับ สตริงที่พื้น กล่าวว่าฉันต้องการนี​​้ และข้อกำหนด เพราะนั่นเป็น HTTP เพื่อให้เป็นเช่นโปรโตคอล ดังนั้นแล้วเซิร์ฟเวอร์ได้รับ ขอให้ ดังนั้นพวกคุณมีเว็บเซิร์ฟเวอร์ที่ติดตั้ง ในเครื่อง CS50 มันเป็นอาปาเช่ และในสัปดาห์นี้เมื่อคุณทำงานในการแก้ปัญหา ตั้งเจ็ดคุณจะจริงจะทำงาน กับเว็บเซิร์ฟเวอร์ที่ ดังนั้นเซิร์ฟเวอร์ได้รับการร้องขอนั้นและ จากนั้นก็มีชนิดของรอยขีดข่วนของ หัวและพูดเหมือนกันว่า ฉันจะทำอย่างไรกับนี้ ดังนั้นขึ้นอยู่กับสิ่งที่มันตัดสินใจที่จะทำแล้ว มันอาจต้องติดต่อบางชนิด ของทรัพยากร และทรัพยากรที่อาจจะ หลายสิ่งหลายอย่างที่แตกต่างกัน หนึ่งก็อาจเป็นเพียงแค่ เช่นไฟล์ HTML แบบคงที่ ดังนั้นมันก็อาจจะชอบบางอย่าง HTML ที่เป็นเหมือน เว็บไซต์ส่วนตัวของคุณ มันอาจจะเป็นไฟล์แบบคงที่เหมือนภาพ หรือเหมือนหนังที่คุณมี มันก็อาจจะมีการพูดคุย ชนิดของฐานข้อมูลบางส่วน เช่นฐานข้อมูล ดังนั้นจึงไม่เคยมีการติดต่อสื่อสาร ด้วยทรัพยากรที่มี แต่ใน บางกรณีก็สามารถทำได้ ดังนั้นแล้วสิ่งที่มันจะทำ หลังจากที่มันจะ ส่งกลับการตอบสนอง และการตอบสนองนี้เป็น นอกจากนี้ยังระบุโดย HTTP ดังนั้นแล้วลูกค้าสามารถได้รับมัน มันสามารถฉีกมันออกจากกันและประมวลผล แล้วคุณจะได้รับหน้าเว็บ เช่น Google หรือ CS50.net หรือ สิ่งที่คุณไป OK? ดังนั้นนี่คือการมีปฏิสัมพันธ์พื้นฐานที่ เรากำลังจะได้รับการติดต่อกับ และเรากำลังสวยมากไปได้ โดยมุ่งเน้นในส่วนของนี้ ปฏิสัมพันธ์เซิร์ฟเวอร์ ตกลง เย็น ใครมีคำถามใด ๆ เพื่อให้ห่างไกล ตกลง ดังนั้นในขณะที่เรากล่าวว่าเว็บเซิร์ฟเวอร์ได้รับ คำขอนี้แล้วปัญหานี้ การตอบสนอง และเช่นเดียวกับเราได้พูดคุยเกี่ยวกับก่อนที่ เว็บเซิร์ฟเวอร์เครื่อง CS50 คืออาปาเช่ ดังนั้นเมื่อพวกคุณทำงานบน P ตั้งเจ็ด คุณกำลังจะได้ร่วมงานกับ Apache เว็บเซิร์ฟเวอร์ คุณจะได้ไม่ต้องทำงานจริงๆ กับ Apache โดยตรงมากเกินไป คุณเรียงลำดับของการกำหนดค่า Apache น้อย เมื่อคุณระบุโฮสต์เสมือนหรือ โฮสต์วีและเราจะได้รับ เพื่อว่าในนิด ๆ หน่อย ๆ แต่โดยทั่วไป, Apache เว็บเซิร์ฟเวอร์ ตั้งขึ้นเพื่อทำงานร่วมกับ PHP ชนิด ของออกจากกล่อง ดังนั้นสิ่งที่เป็นจริงที่เกิดขึ้นคือเมื่อคุณไป หนึ่งในเว็บไซต์ของคุณเช่นการพูดการ index.php เฉือนท้องถิ่นโฮสต์หรือบางสิ่งบางอย่าง เป็นเบราว์เซอร์ของคุณส่งที่ คำขอแล้ว Apache นั่ง และมีตัวเลขที่ออกจะทำอย่างไรกับมัน และการดำเนินการที่จะดำเนินการ รหัสที่อยู่ใน index.php และ แล้วส่งออกกลับ ดังนั้นจึงมีว่า ดังนั้นเราเรียงลำดับของการพูดคุยเกี่ยวกับเรื่องนี้ ดังนั้นมันก็สามารถให้บริการไฟล์คง หรือเรียกใช้บางรหัส PHP และปัญหาแล้ว การตอบสนอง ดังนั้นแล้วคำถามทั่วไปที่สามารถเข้ามา ขึ้นเป็นอย่างดีอย่างไรเราจัดการจริงๆ กับการมีผู้ใช้หลายคน ในเวลาเดียวกันได้หรือไม่ ดังนั้นคิดว่าคุณกำลังเขียนเว็บ เซิร์ฟเวอร์ถ้าคุณมีเว็บเซิร์ฟเวอร์ที่ คุณพยายามที่จะเขียนในสิ่งที่ เช่น C หรือสิ่งที่ต้องการที่ โดยทั่วไปคุณสามารถคิดเกี่ยวกับวิธีการที่มี อาจเป็นชนิดของรหัสที่ จะได้รับการร้องขอ แต่แล้ว จะมีการทำงานทั้งหมดนี้มัน มันอาจจะมีการยกตัวอย่างเช่นการติดต่อ ฐานข้อมูลหรือสิ่งที่ต้องการที่ ใช่มั้ย? และจากนั้นก็จะทำแบบนั้น ของการประมวลผลแล้ว ส่งกลับการตอบสนอง เพื่อให้เป็นที่ต้องการสูง ภาพรวมที่ระดับ แต่ก็ไม่ชัดเจนทันทีวิธีการที่คุณ สามารถทำเช่นนั้นเพื่อให้คนสองคนหรือ 1,000 คนแม้จะสามารถทำงานร่วมกับคุณ เว็บเซิร์ฟเวอร์ในเวลาเดียวกัน ดังนั้นการแก้ปัญหาที่ใช้อาปาเช่ เรียกว่าหัวข้อหรือกระบวนการ ดังนั้นคุณอาจเคยได้ยิน เงื่อนไขเหล่านี้ก่อนที่จะ ก็ OK ถ้าคุณยังไม่ได้ แต่ก็คิดว่า เกี่ยวกับหัวข้อหรือกระบวนการเป็นวิธีการที่ ระบบปฏิบัติการหรือโปรแกรมที่ผู้ใช้หรือ สิ่งที่ต้องการที่หรือเว็บเซิร์ฟเวอร์ การเรียงลำดับของการดำเนินการหลาย สิ่งที่ได้ในครั้งเดียว ดังนั้นคุณอาจจะเคยได้ยินคำว่า เช่นหัวข้อของการดำเนินการ ดังนั้นจึงเป็นชนิดเช่นคุณ การเรียงลำดับของการทำงานหลาย และถ้าคุณได้เห็นในกล่องของคุณ แล็ปท็อปหรือสิ่งที่ต้องการที่ แบบมัลติคอสิ่งที่คุณสามารถทำได้คือการที่คุณสามารถ ใช้สองหัวข้อที่แตกต่างกันเกี่ยวกับการที่แตกต่างกัน ส่วนของซีพียูเพื่อให้พวกเขาสามารถ เกิดขึ้นจริงในเวลาเดียวกัน ดังนั้นนี่คือที่มีประสิทธิภาพจริงๆ และนี่คือชนิดของของ Apache วิธีการแก้ปัญหานี้ ดังนั้นจะมีชนิดเช่นปัญหาใด ๆ ด้วยวิธีนี้แม้ว่า ดังนั้นผมคิดว่าผมชนิดของพวกเขาเขียนมี แต่ทั้งสองของพวกเขาจัดเรียงของ ใช้หน่วยความจำ มันแพงมากในการสร้าง ด้ายหรือกระบวนการ และเป็นส่วนหนึ่งของเหตุผลที่ว่าเพียงแค่ เช่นเมื่อคุณกำลังใช้งานโปรแกรม C เช่นหลักของคุณแล้วที่โทร ฟังก์ชั่นอื่นที่มี ชนิดของกองบางส่วน ดังนั้นหัวข้อยังต้องการทั้งหมด สแต็คที่แยก จะค่อนข้างใหญ่ และถ้าคุณสามารถคิดที่มีตันของ ผู้ใช้ในเว็บไซต์ของคุณคุณจะต้อง จำนวนมากของหัวข้อที่แตกต่าง นั่นเป็นจำนวนมากกองที่ จัดการและบำรุงรักษา ดังนั้นจึงเป็นที่ใช้หน่วยความจำขนาดใหญ่ แล้วยังสมมติว่าคุณมีเพียง หนึ่ง CPU หรือสมมติว่าคุณมี หัวข้อมากขึ้นกว่าที่คุณมี multicores ที่ ใช่มั้ย? ดังนั้นสมมติว่าคุณมี 10 หัวข้อ และคุณจะมีห้าซีพียู ชนิดของคุณต้องทำสิ่งนี้ที่ คุณสลับไปมาระหว่างปัจจุบัน หนึ่งที่ทำงานเพราะคุณ ไม่สามารถทำงานได้ทั้ง 10 ในครั้งเดียว และที่เรียกว่าสวิทช์บริบท และคำที่จริงมีคู่ของ บริบทที่แตกต่างกัน แต่ให้เพียง คิดว่ามันเป็นเปลี่ยน ระหว่างสองหัวข้อ ที่อาจมีราคาแพงสวยเพราะ โดยทั่วไปสิ่งที่คุณต้องทำก็คือค​​ุณ ต้องหยุดสิ่งที่คุณทำบันทึก รัฐที่ด้ายทำงานและ จากนั้นสลับไปที่อื่น ดังนั้นทุกคนไม่เห็นชนิดของ แรงจูงใจว่าทำไมกระทู้และ กระบวนการอาจจะมีขนาดใหญ่เพียงเล็กน้อย และคุณก็มีคำถามหรือไม่ ตกลง เย็น ใครมีคำถามหรือข้อสงสัย ตกลง ดังนั้นหากเราจะใช้ขั้นตอนกลับเป็นครั้งที่สอง มีชนิดเช่น สังเกตว่าเราสามารถทำเกี่ยวกับ จำนวนมากของการใช้งานเว็บ และที่จริงที่มากของพวกเขา จริงไม่ทำอย่างนั้นมีประโยชน์มาก ทำงานภายในของด้าย ดังนั้นใครที่ได้เริ่มต้นในการ P ตั้งเจ็ดที่ทั้งหมดหรือไม่ ดังนั้นคุณอาจต้องการที่จะอธิบาย บางส่วนของชิ้นส่วนหรือไม่ คุณทำงานในการเข้าสู่ระบบ หรือสิ่งที่ต้องการที่ ผู้ชม: เลขที่ เควิน SCHMID: OK ไม่เป็นไร ขอโทษ แต่โดยทั่วไปในชุด P คุณ จะได้รับการทำมากของการจัดเรียงของ คำสั่งไปยังฐานข้อมูลที่จะได้รับบางส่วน ข้อมูลจากฐานข้อมูลที่ และสิ่งที่รหัสของคุณเป็นไปได้ทำ สิ่งที่ว่ากระบวนการ Apache หรือ ที่ด้าย Apache เป็นไปได้ทำ ในขณะที่มีการติดต่อกับ เป็นฐานข้อมูลที่จะเรียงลำดับของการไปได้ นั่งอยู่ที่นั่นและมันเป็นไปได้ รอให้ฐานข้อมูลเพื่อตอบ ตอนนี้อาจจะไม่ชอบเสียงที่ใหญ่ เพราะจัดการฐานข้อมูลของคุณ เครื่องใช้ CS50 ใช่ไหม แต่มีชนิดของเครือข่ายบางส่วน มีความล่าช้าเพราะตอนนี้เว็บ เซิร์ฟเวอร์มีการออกคำขอของตัวเองเพื่อ ฐานข้อมูลในการสื่อสารกับ ฐานข้อมูลและจากนั้นได้รับว่า ข้อมูลกลับไป ดังนั้นตอนนี้มันก็เหมือนกันรอให้ฉันฉัน จะไปรับอะไรบางอย่างจาก ฐานข้อมูลแล้วมี จำนวนมากรอคอยที่เกิดขึ้น ไม่ที่ทำให้รู้สึก? และสำหรับบางสิ่งบางอย่างก็ไม่ใช่ว่าไม่ดี ถ้ามันก็มีการยกตัวอย่างเช่น เข้าถึงหน่วยความจำที่ไม่ชอบ น่ากลัว I / O แฝง และเมื่อฉันพูดว่า I / O แฝง, สิ่งที่ฉัน หมายถึงเป็นเหมือนชนิดเช่นใด ส่งออกนำเข้า แต่การที่จะเข้าถึงไฟล์บนดิสก์เช่น ถ้าผมต้องการที่จะให้บริการแบบคงที่ HTML ไฟล์ที่อยู่ในหน้าเว็บของฉันหรือ สิ่งที่ต้องการที่ฉันชนิดต้อง หยุดสำหรับบิตอ่านไฟล์ที่ ในจากดิสก์และจากนั้นใน ขั้นตอนที่ฉันกำลังรอคอยว่า ฉันไม่ได้ทำผลงานที่มีประโยชน์ นี้ไม่เป็นความจริงทุกอย่าง แต่ เป็นเรื่องธรรมดาในการใช้งานเช่น P ชุด เจ็ดและเป็นจำนวนมากของการใช้งาน ที่คุณไม่ได้ ทำจริงมากคิด และเมื่อฉันพูดความคิดของผมหมายถึง เช่นการทำงานของคอมพิวเตอร์ ดังนั้นการทำงานของคอมพิวเตอร์อาจเป็นสิ่งที่ เช่นการพูดที่คุณอยาก เขียนเว็บเซิร์ฟเวอร์ที่คำนวณเพียง จำนวน Fibonacci nth แต่นั่นไม่ได้เสียงเหมือนโดยเฉพาะอย่างยิ่ง เว็บเซิร์ฟเวอร์สนุก เช่นฉันจะไม่คาดหวังว่าเว็บไซต์จะเป็น ถัดไป Facebook, แต่ที่เป็นบางส่วน ชนิดของการทำงานของคอมพิวเตอร์ และคุณสามารถจินตนาการว่ามีการเปลี่ยน บางชนิดอื่น ๆ ที่น่าสนใจ การทำงานของคอมพิวเตอร์ สมมติว่าคุณกำลังเขียนบางสิ่งบางอย่าง ที่มีการคำนวณองศาของ การแยกระหว่างคนสองคน หรือสิ่งที่ต้องการ ดังนั้นที่ไม่เกี่ยวข้องกับการบางชนิด ของการคำนวณใช่ไหม และแม้แล้วจะทำอย่างไรที่คุณยังมี ที่จะทำมากของการรอคอยสำหรับบางที คุณต้องค้นหาฐานข้อมูลที่จะมอง ขึ้นที่เป็นเพื่อนกับใครหรือ สิ่งที่ต้องการที่ ดังนั้นจึงเป็นชนิดของความคิดที่ว่า ของการทำงานของคอมพิวเตอร์ ไม่ที่ทำให้รู้สึก? ไม่มีใครมีคำถามหรือข้อสงสัย โอ้และผมคิดว่าผมใส่เซิร์ฟเวอร์มีการแชท เพราะเซิร์ฟเวอร์การแชทเป็นชนิดของ อีกหนึ่งตัวอย่างที่ดีของเรื่องนี้ เซิร์ฟเวอร์การสนทนาไม่ได้ ความคิดที่จะทำมาก มันก็ต้องรอสำหรับคนที่จะ ส่งข้อความและจากนั้นเมื่อ พวกเขาจะส่งพวกเขา OK? เพียงเพื่อปะยางรถอีกครั้ง Apache และ เว็บเซิร์ฟเวอร์ที่คล้ายกันเช่นว่าส้อม จำนวนมากของหัวข้อและกระบวนการที่ สามารถชนิดสิ้นเปลือง ดังนั้นผมคิดว่าคำถามที่อาจจะมา จากที่เราจำเป็นต้องมี หลายหัวข้อและกระบวนการ? ถ้าเราเพียงแค่มีหนึ่ง จึงขอชนิดของวาดภาพ ของสิ่งนี้จะมีลักษณะเหมือน จึงขอใช้เพียงหนึ่งหัวข้อ OK? ดังนั้นเพียงแค่คิดนี้ด้วยด้าย ลองสมมติว่าเราไม่ได้ทำจริงๆ ที่มีประโยชน์มาก - และเมื่อฉันพูด ที่มีประโยชน์ผมหมายถึงการทำงานของคอมพิวเตอร์ - ในหลายหัวข้อเหล่านั้นก่อน จึงขอรวบรวมชนิดของ ทุกอย่างเป็นหนึ่งในหัวข้อที่ ดังนั้นสิ่งที่ถ้าเรามีหนึ่งด้ายชนิดที่ เพียงแค่เดินไปรอบ ๆ ในวงและ อย่างต่อเนื่องการตรวจสอบทำอะไรบางอย่าง ใหม่เกิดขึ้น ดังนั้นตัวอย่างเช่นสิ่งที่เกิดขึ้นใหม่ อาจหมายถึงสิ่งที่ผมได้รับกลับมาจาก ฐานข้อมูลหรือใครบางคนที่ส่ง ฉันขอ HTTP ใหม​​่ ดังนั้นผู้ที่เป็นชนิดของเหตุการณ์ที่เกิดขึ้น ที่เกิดขึ้นใช่ไหม และแล้วสิ่งที่ฉันสามารถทำได้เมื่อใหม่เหล่านั้น สิ่งที่เกิดขึ้นอยู่ในหัวข้อเดียวกันนี้ ของการดำเนินการด้ายเดียวนี้ ดำเนินการที่ฉันสามารถเรียกรหัสบางอย่างที่ จะจัดการกับสิ่งที่โดยเฉพาะอย่างยิ่ง ดังนั้นสำหรับตัวอย่างเช่นถ้าฉันมีอะไรบางอย่างกลับ จากฐานข้อมูลที่ฉันสามารถเรียกใช้ของฉัน ส่วนการคำนวณขนาดเล็กของมันที่ จริงเพียงแค่เตรียมสิ่งที่ ส่งกลับไปยังผู้ จึงไม่ทำให้ชนิดของความรู้สึกที่ แต่สิ่งที่เป็นจริง ผลกระทบของการนี​​้ ใช่มั้ย? เพราะเราได้เขียน จำนวนมากของรหัสที่ - และฉันก็จะกระโดดไปข้างหน้า ในภาพนิ่งถ้าที่ตกลง ดังนั้นหากคุณไม่ทราบฉันแค่ จะใช้ขั้นตอนกลับ ดังนั้นชนิดของสิ่งนี้คือ ที่เรียกว่าห่วงกรณี OK? และมันเป็นชนิดของขั้นพื้นฐาน คิดที่อยู่เบื้องหลัง Node.js. ดังนั้นสิ่งที่ Node.js เป็นจริงทำเว็บ เซิร์ฟเวอร์มีหัวข้อเดียว ที่เป็นพื้นไปรอบ ๆ ในวง เช่นในขณะที่หนึ่งชนิดภายใต้ เครื่องดูดควันของ Node.js ที่อย่างต่อเนื่อง การตรวจสอบไม่ที่เราได้รับสิ่งใหม่ได้หรือไม่ แล้วมันจะทำงานจัดการ ที่คุณตั้งค่า แต่เป็นคำถามที่ดีที่จะถามคือ วิธีการที่เราสามารถทำให้เกิดขึ้น กับสิ่งที่มีอยู่ ดังนั้นผมจึงวางสายของรหัส C ที่นี่ที่ โดยทั่วไปดูเหมือนว่ามันเปิด ยื่นใช่ไหม ฉันเธอก็ออกมาพร้อมกับอัลบั้ม ดังนั้นผมจึงจะเปิดไฟล์ของเธอใหม่ ดังนั้นวิธีที่รหัส C สำหรับการดำเนินงานของเรา - และผมคิดว่าเหตุผลที่ผมเลือกไฟล์ที่เป็น เพราะนี้เป็นชนิดของขอบเขต ของ I / O งานที่เราได้ทำใน C ใน ความรู้สึกว่ามีการส่งออกนำเข้าเป็น ดังนั้นเราจึงเรียกรหัสนี้ว่า ไม่ฉนี้เปิด และจากนั้นในบรรทัดถัดไปของเรา โปรแกรมตอนนี้เราสามารถทำงานร่วมกับเอฟ ดังนั้นนี่จะเป็นตัวอย่างของสิ่งที่ ที่เหมือนหรือตรงกัน เพราะการปิดกั้นในบรรทัดแรกที่ มีเรากำลังรอจนกว่าเราจะ ได้รับไฟล์ที่เปิด ดังนั้นในบรรทัดที่สองเรารู้ว่าเรา สามารถทำงานร่วมกับเอฟ แต่นี้หมายความว่า บรรทัดที่สองที่ไม่สามารถเรียกจริงๆ จนถึงบรรทัดแรกจะทำ ไม่ที่ทำให้รู้สึก? ดังนั้นนี้จะเป็นที่ดีที่จะนำ ในการจัดการเหตุการณ์ และเหตุผลที่ว่าก็คือ แบบนี้รอใช่มั้ย? ดังนั้นนี่จะกลับเรากลับ ที่จะเป็นสิ่งเดียวกัน และตอนนี้เราจะไม่ได้มี ประโยชน์ของหลายหัวข้อหรือ เพราะกระบวนการที่เราได้ หนึ่งหัวข้อใน Node.js. ไม่ว่าทำให้ความรู้สึกที่ทุกคน? ผู้ชม: รอ ดังนั้นสิ่งที่ทดแทนได้หรือไม่ เควิน SCHMID: โอ้ดังนั้นใช่ ดังนั้นฉันจะได้รับการ ทดแทน ตกลง ดังนั้นสิ่งที่ถ้าเรามีบางสิ่งบางอย่าง ที่มองเช่นนี้หรือไม่ ดังนั้นสิ่งที่ถ้าตอนนี้ผมแก้ไข ฉเปิดเพียงเล็กน้อย ดังนั้นฉันผ่านในที่เดียวกัน ทั้งสองมีปากเสียงก่อนที่จะเป็น ฉันยังคงรักเพลงใหม่ ว่าเธอออกมาพร้อมกับ แต่ฉันผ่านสิ่งที่สามที่ เป็นตัวแปรที่เรียกว่ารหัส แต่เป็นรหัสสิ่งที่จริง ในบริบทนี้ มันเป็นเหมือนตัวแปร C ปกติ มันเป็นฟังก์ชั่นใช่ไหม และนั่นอาจจะเป็นเพียงเล็กน้อยแปลกเพราะ ฉันจริงเช่นตอนนี้ผ่าน ทำงานในการทำงานอื่น ดังนั้นสองสิ่งที่ควรทราบเกี่ยวกับเรื่องนี้ หนึ่งฉันไม่ได้จริงโทร ฟังก์ชั่นรหัส ดังนั้นคุณจึงไม่เห็นด้วยรหัส paren ซ้าย paren ขวา ฉันแค่ผ่านในรหัส และใน C สิ่งนี้จะทำจริง ให้ฉันเป็นตัวชี้ไปยังที่เกิดขึ้นจริง รหัสแล้วนี้สามารถเรียกใช้มัน แต่เพียงแค่คิดเกี่ยวกับมันในขณะที่คุณกำลัง รหัสผ่านที่จะใช้เมื่อ ไฟล์ที่เปิด แต่สิ่งที่หมายถึงนี้คือว่าตอนนี้ ส่วนที่เหลือของโปรแกรมของฉันที่จะทำ สิ่งอื่น ๆ สามารถดำเนินการต่อการทำอื่น ๆ สิ่งที่ในขณะที่เราไม่ได้จริงๆรอ แต่ เพียงแค่มีในด้านหลังของหัวของเราที่ เมื่อไฟล์ที่เปิดดำเนินการที่ รหัสที่ด้านบน ไม่ที่ทำให้รู้สึก? และตอนนี้ความคิดที่อยู่เบื้องหลัง Node.js คือ รหัสในสิ่งที่ทำกับฉ ส่วนที่ควรจะสวยสั้นและง่าย และตรงไปตรงมาและไม่จริง คอมพิวเตอร์เข้มข้นมาก มันอาจจะต้องเปิดไฟล์อื่น แต่ ที่ยังควรจะรวดเร็วสวย เพราะมันก็ควรจะพูดว่าทำฉอื่น เปิดแล้วโทรรหัสอื่น ๆ ดังนั้นเพียงแค่จะสมบูรณ์ชัดเจนฉ ที่จะเปิดใหม่ Katy Perry เพลง ทำ mp3, ที่จะสวย ผลตอบแทนที่มากทันที และจากนั้นเราก็สามารถดำเนินการต่อการทำ สิ่งอื่น ๆ เพราะทุกที่ตอนนี้ฉ โทรเปิดไม่ถูกบอกโดยทั่วไป ภายใต้รหัสเปิดฉเปิดแฟ้มนี้ และเมื่อเสร็จสิ้นการเปิดนี้ ไฟล์หรือเมื่อคุณได้รับมันกลับมา แล้วเรียกใช้รหัสที่ แต่ก็ไม่ได้เรียกใช้รหัสที่จริง และคุณมีคำถามหรือไม่ ผู้ชม: คุณดูเหมือนจะบ่งบอกถึงการไม่กี่ ครั้งว่าการเพิ่มคอมพิวเตอร์ รหัสเข้มข้นเรียงลำดับของการทำลาย [ไม่ได้ยิน] ระบบขับเคลื่อน [ไม่ได้ยิน]? เควิน SCHMID: นั่นเป็นคำถามที่ดี ดังนั้นที่จริงผมมีตัวอย่างของวิธีการ คุณสามารถบูรณาการคอมพิวเตอร์ รหัสเข้มข้นในนิด ๆ หน่อย ๆ ดังนั้นเมื่อเราได้รับตัวอย่างรหัส ฉันจะต้องแน่ใจว่าจะดึงคนที่ ที่ OK? ขอบคุณ สิ่งที่เป็นชื่อของคุณหรือไม่ ผู้ชม: แอรอน เควิน SCHMID: แอรอนนำขึ้นมาก จุดที่ดีซึ่งเป็นที่ถ้าผมมี รหัสบางอย่างในคอมพิวเตอร์ สิ่งที่จะทำอย่างไรกับเอฟส่วนที่เหลือของ โปรแกรมของฉันไม่สามารถทำงานได้และไม่สามารถรับฟัง สำหรับการร้องขอใหม่หรืออะไรจนกว่าทั้งหมด สิ่งที่เสร็จสิ้น ดังนั้นถ้าผมเขียนรหัสโหนดโดยทั่วไป หากเราทำสิ่งที่ชอบฉันจะ ที่จะแนะนำต่อมาเมื่อเรามองไปที่ ตัวอย่างโค้ดที่ผมจะต้องแน่ใจว่า รหัสของฉันไม่ได้ผูกขึ้น ห่วงเหตุการณ์นี้ ไม่ที่ทำให้รู้สึก? ตกลง เย็น ดังนั้น Node.js มีกรอบนี้ว่า คุณสามารถสร้างเหตุการณ์เหล่านี้ขับเคลื่อน เซิร์ฟเวอร์ที่มี ดังนั้นจึงมีชนิดของเหล่านี้ไม่ตรงกัน ไม่ปิดกั้น I / O ห้องสมุดในขณะที่ ห้องสมุด C มาตรฐานที่เราได้รับ การทำงานร่วมกับเช่นถ้าคุณเพียงแค่ ใช้พวกเขาในลักษณะเดียวกับที่เราได้ รับใช้พวกเขาด้วยการเปิดและฉ สิ่งที่มีการปิดกั้นเพราะ คุณจริงต้องรอให้ ไฟล์ที่จะเปิดได้ แต่ Node.js ช่วยให้คุณนั้นและมัน โดยทั่วไปเป็นความสัมพันธ์ของ Google V8 JavaScript เครื่องยนต์ซึ่งเป็นเหตุผลที่ Chrome ที่เป็นอย่างรวดเร็วที่การประมวลผล JavaScript เพราะมัน มี V8 เครื่องยนต์นี้ ดังนั้นผมจึงรู้ว่าเสียงเหมือนหนึ่งในบรรดา WWDC สิ่งที่การประชุมนักพัฒนา ที่พวกเขาเพียงแค่โยนพวงของ สิ่งที่จำนวนตัวอักษรสำหรับโปรเซสเซอร์ และพูดนี้คือเพื่อให้เย็น แต่มันเป็นความเย็นที่พวกเขาทำ นี้เพราะ JavaScript - หรือบางทีถ้าคุณไม่คุ้นเคยกับ JavaScript ยังเพราะเราไม่ได้มี บรรยายบน - แต่ JavaScript เป็นตีความ ภาษา และนี่คือจุดสำคัญเกินไป ดังนั้นจึงเป็นสิ่งสำคัญสำหรับเว็บของเรา เซิร์ฟเวอร์จะเป็นไปอย่างรวดเร็วและถูกต้อง และถ้าเราเป็นเพียงแค่การใช้งานจาวาสคริปต์ รหัสที่ได้รับการตีความที่มีเพียง ล่ามเก่า ๆ มันอาจจะช้า ดังนั้นผลประโยชน์จากการมีโหนดนี้ ล่าม V8 เร็วสุด และผมก็ไม่ทราบว่าพวกเขาตั้งชื่อมัน เพราะตบ V8 ที่หน้าผาก สิ่ง แต่ตกลง ดังนั้นผมจึงได้จัดทำตัวอย่างบางส่วน ที่ URL นี้ หลังจากการสัมมนาที่ฉันเรียงลำดับของการไป พูดคุยเกี่ยวกับวิธีการที่คุณจะได้รับชุดโหนด ขึ้น แต่สำหรับตอนนี้ผมเพียงแค่การจัดเรียงของต้องการ ที่จะเดินผ่านตัวอย่างโค้ดบางส่วน ดังนั้นถ้าคุณต้องการที่จะทำตามทั้งหมด รหัสแหล่งที่มาใช้ได้มี OK? ดังนั้นฉันจะออกจาก URL นี้ ขึ้นสำหรับน้อย แล้วฉันแค่จะไป เปลี่ยนเป็นขั้ว คือทุกคนที่ดีกับ URL นี้? ดังนั้นฉันจะเปลี่ยนไป ไปยังสถานีของฉันที่นี่ ดังนั้นนี่คือรหัสที่ ผมมีวันนี้ ทำไม่ได้เราจะเริ่มต้นด้วยทำไม simpler.js ไฟล์ สิ่งอื่น ๆ คือว่าทั้งหมดนี้ รหัสจะถูกเขียนใน ซึ่ง JavaScript คุณอาจจะหรือ อาจจะไม่คุ้นเคยกับ ผมคิดว่าสิ่งที่สองเป็นที่มาก ของรหัสจาวาสคริปต์เป็นชนิดของ ไวยากรณ์และโครงสร้างคล้ายกับ C เพื่อให้คุณสามารถเลือกชนิดของขึ้นเป็น คุณไปพร้อม ฉันได้พยายามที่จะเขียนมาก รหัสเริ่มต้นของเรื่องนี้ในทางที่ คล้ายกับ C เพื่อที่จะ น้อยอ่านง่ายขึ้น แต่ในขณะที่ความคืบหน้าเราฉันจะเป็น แสดงให้เห็นถึงบางส่วนของเพิ่มเติม คุณสมบัติของ JavaScript ที่ เป็นชนิดของเย็น แต่ให้ดูที่โปรแกรมตัวอย่างนี้ ผมคิดว่าทุกอย่างที่ถูกตัดออกมี ฉันแค่ไปในการแก้ไขปัญหาที่แท้จริง รวดเร็วหากที่ตกลงหรือไม่ ผมไม่ทราบว่าสิ่งที่จะไปทำ คือการที่ดีขึ้นเล็กน้อยหรือไม่ คุณสามารถดู var และสิ่งที่? ตกลง ดังนั้นบรรทัดแรกเป็นเหมือน JavaScript รุ่นของตัวแปร การประกาศ ดังนั้นเพียงแค่เพื่อเน้นสิ่งที่จะนี้ มีลักษณะเหมือนใน C. ดังนั้นนี้เป็นเช่นเดียวกับ ดัชนีฉันพูดเท่ากับสาม หรือสิ่งที่ต้องการ ดังนั้นผมจึงไม่ได้ระบุชนิด JavaScript จะมีชนิด แต่ก็ มากพิมพ์แบบไดนามิกในธรรมชาติเพื่อให้ ไม่ได้ให้ชนิดของประเภทใด ๆ ในนั้น ดังนั้นมันก็มี var นั่นเป็นตัวแปรเช่น OK? และฉันโทร HTTP ตัวแปรนี้ และทางด้านขวามือของฉันฉันมี การแสดงออกที่ฉันต้องการจะใส่ใน HTTP และบอกว่าต้องใช้ HTTP ดังนั้นนี่คือชนิดของที่คล้ายกันที่จะรวม มันมากขึ้นเพียงเล็กน้อยเช่นที่มีประสิทธิภาพกว่า รวมถึงในแง่ที่ว่ารวมถึง ก็จะคัดลอกและวางส่วนหัว ไฟล์สำหรับต้นแบบฟังก์ชันหรือ สิ่งที่มีความหมายประเภท แต่ต้องเป็นจริงที่เกิด เราจะได้รับรหัส เพื่อให้คุณสามารถคิดว่ามันเป็น การนำเข้าบางรหัส ดังนั้นหนึ่งในโมดูล Node.js ระบบหรือสิ่งที่พวกเขาได้ทั้งหมดนี้ รหัสเซิร์ฟเวอร์ดังนั้นฉันเพียงแค่ เรียกมันของตัวเอง การใช้งานส่วนบุคคลในโปรแกรมนี้ OK? ดังนั้นแล้วฉันมีฟังก์ชั่นนี้ ที่ผมเคยเขียน และแจ้งให้ทราบผมไม่ได้มีการระบุ ประเภทผลตอบแทนหรือประเภทของ ข้อโต้แย้งอีกครั้ง ดังนั้นชนิดของการพิมพ์ในหลวม ชนิดของความรู้สึกที่ว่า สองข้อโต้แย้งที่ว่าจะใช้เวลาใน ร้องขอและการตอบสนอง เพื่อให้เป็นแนวคิดชนิดเช่น ที่คุ้นเคยจากภาพที่เรามี บนหน้าจอก่อนเพราะ เราได้รับการร้องขอนี้ว่าเรา มีจากผู้ใช้ แล้วเรามีการตอบสนองที่ เราสามารถเขียนสิ่งที่จะ ดังนั้นบรรทัดแรกของการนี​​้จะ res.writeHead 200 แล้วนี้ ชนิดเนื้อหาข้อความธรรมดา เพื่อขอชิ้นนี้ออกจากกันเล็กน้อย เพื่อให้เพียงมุ่งเน้นไปที่ res.write เล็ก ๆ น้อย ๆ ดังนั้นการเขียนเป็นพื้นและเขียนหัว เป็นเพียงวิธีการที่จะเรียงลำดับของการเขียนออก สิ่งที่จะตอบสนอง OK? เพื่อเขียนหัวถ้าใครจำได้ จากการบรรยาย HTTP ทำพวกคุณ จำได้ว่าส่วนหัวที่ ด้านบนของสิ่ง HTTP? ดังนั้นทำไมฉันจึงไม่ได้เป็นเพียงการสาธิต ส่วนหัวจริงอย่างรวดเร็ว ที่จะเป็นประโยชน์หรือไม่ หรือควรเราเพียงแค่การจัดเรียงของ - ตกลง แน่ใจ ดังนั้นเมื่อเบราว์เซอร์ของคุณไปที่ google.com หรือสิ่งที่ต้องการที่ มีจริงเพียงเล็กน้อยมากขึ้น - นี้เป็นเหมือนความลับ - เช่นมีข้อมูลน้อยมาก ที่มาผ่านท่อมากกว่าเพียงแค่ ค้นหาน้อยและทุกอย่าง เพื่อที่จะแสดงให้คุณเห็นนี้ฉันจะ ที่จะใช้โปรแกรมที่เรียกว่า Curl OK? ดังนั้นนี่คือสิ่งที่คุณสามารถทำงานที่ บรรทัดคำสั่งของคุณ Mac OSX หรือใน เครื่องใช้หรือสิ่งที่ และอื่น ๆ ถ้าฉันไม่ Curl HTTP google.com, ฉันจะไปดู HTML และนี่คือในความเป็นธรรมเพียง HTML ที่จัดเรียงของบอกให้คุณ เปลี่ยนเส้นทางไปที่ www ถ้าเบราว์เซอร์ของคุณไม่ จัดการโดยอัตโนมัติ การเปลี่ยนเส้นทาง ดังนั้นนี่เป็นเพียง HTM​​L แต่ฉันจะ เพื่อเพิ่ม Curl ยัติภังค์ฉันธงนี้ OK? และสิ่งนี้จะแสดง ฉันหัว ดังนั้นนี้ยังเป็นข้อมูลที่มา ผ่านเมื่อฉันได้รับการตอบสนองนี้ OK? ดังนั้นที่ด้านบนคุณจะเห็นนี้ HTTP 301 ย้ายอย่างถาวร และนี้เป็นชนิดของสิ่งที่สำคัญเพราะ นี้หมายถึงรหัสสถานะ ดังนั้น 301 นี่เป็นรหัสสถานะ ซึ่งเป็นพื้นเพียงจำนวนเต็ม ที่บอกว่าเบราว์เซอร์หรือใครก็ตามที่เป็น อ่านนี้ถ้าคุณแกล้งทำเป็นว่า คุณเบราว์เซอร์และคุณเห็นนี้ โดยทั่วไปในขณะนี้ถ้าคุณมองไปที่ ที่และคุณจะเห็น 301 คุณรู้ว่าฉันมี ที่จะทำสิ่งที่พิเศษขึ้นอยู่กับ 301 หรือสิ่งพิเศษที่เกิดขึ้น ตาม 301 ดังนั้นจึงกล่าวได้ย้ายอย่างถาวร แล้วโดยทั่วไปเรามี พวงของคู่ค่าที่สำคัญ ดังนั้นเราจึงได้รับตำแหน่ง เป็น www.google.com แล้วชนิดของสิ่งอื่น ๆ ทั้งหมดนี้ แต่โดยทั่วไปสิ่งที่ตั้งเป็น คำกล่าวที่ว่าเป็นที่ตั้งใหม่ เป็นที่ www.google.com ดังนั้นตอนนี้ถ้าคุณไปที่ google.com คุณจะ เรียงลำดับของการมองเห็นชนิดของเบราว์เซอร์กระพริบตา เป็นครั้งที่สองแล้วเปลี่ยนเส้นทางคุณ ขวากลับไปที่ www.google.com ดังนั้นการตอบสนองสามารถมี ส่วนหัวเหล่านี้ และสองสิ่งที่จะชี้ให้เห็น ดังนั้นสมมติว่าเราประสบความสำเร็จจริง ในการเยี่ยมชมหน้าเว็บ เพื่อให้ฉันไป - สิ่งที่เป็นเว็บไซต์ที่ดี? ฉันไม่ดีที่คิดดี เว็บไซต์ในจุดที่ ผู้ชม: วิกิพีเดีย เควิน SCHMID: OK ขอทำวิกิพีเดีย ดังนั้นที่นี่ฉันถูกย้าย โอ้รอ เป็นฉัน ใช่ฉันเป็น ตกลง ดังนั้นผมจึงได้ทำเว็บไซต์ ดังนั้นฉันจะทำที่ www และอย่างที่คุณเห็นนี่คือทั้งหมดที่ HTML เบราว์เซอร์ที่จะดำเนินการ กับวิกิพีเดีย แต่ถ้าฉันให้เลื่อนขึ้นที่นี่ สิ่งที่ฉันจะเห็นที่ด้านบน - ว้าวมีจำนวนมากเป็น HTML บนวิกิพีเดีย - แต่สิ่งที่ฉันสามารถดูที่ด้านบนของที่นี่คือ นี้รหัส 200 สถานะเป็นตรงข้ามกับ 301 ที่ผมเห็นก่อนหน้านี้ และแจ้งให้ทราบว่ามีดี ตกลงที่เป็นมิตรถัดไป ดังนั้นนี้เป็นเหมือนรหัสสถานะที่ดี ไม่ว่าจำนวน 200 ดูคุ้นเคย ใช่เพราะเมื่อฉันได้ simpler.js, ที่ผมเขียน 200 มี ดังนั้นที่บอกว่าโดยทั่วไปบอก เบราว์เซอร์หรือใครก็ตามที่พยายามจะไป นี้ว่าพวกเขาประสบความสำเร็จ หรือชนิดของเหมือนเราที่ ประสบความสำเร็จด้วย และมีชนิดของไวยากรณ์พิเศษนี้ ใน Javascript ประกาศ แผนที่ของคีย์เหล่านี้เช่นเดียวกับชนิดเนื้อหา และค่านิยมเหล่านี้เช่นข้อความธรรมดา ดังนั้นถ้าคุณมองไปที่การตอบสนองที่เรา ได้กลับมาจากวิกิพีเดียมาก่อน - ฉันจะพยายามที่จะเลื่อน ขึ้นเล็กน้อยได้เร็วขึ้น - คุณมีคีย์เหล่านี้เช่นเซิร์ฟเวอร์ และค่านิยมเหล่านี้อาปาเช่ เพื่อให้คุณได้มีคีย์และค่า และคุณสามารถระบุใน โหนดว่าจะส่งกลับ ดังนั้นนี้เป็นจริงชนิดของในบาง ๆ และในบางวิธีก็ไม่ได้ จริงๆ แต่ก็เป็นระดับที่ต่ำกว่าเล็กน้อย กว่าโค้ด PHP ที่คุณอาจจะมี เขียน P ตั้งเจ็ดเพราะ PHP และ Apache เรียงลำดับของการดูแลบางส่วน สิ่งเหล่านี้สำหรับคุณ ใน PHP, คุณสามารถแทนที่ค่าเริ่มต้น พฤติกรรมโดยการเขียนส่วนหัวของคุณเอง แต่สำหรับวัตถุประสงค์ของเรื่องนี้ที่เราได้รับ ที่จะเขียนออกหัวของเราเอง ดังนั้นสายที่ไม่ทำให้รู้สึกถึง ทุกบรรทัดเขียนหัว? ตกลง น่ากลัว ดังนั้นแล้วสิ่งที่ผมทำคือผมจบการตอบสนอง ด้วยการพูดว่าสวัสดีชาวโลก ตกลง แต่นั่นเป็นเพียงฟังก์ชั่น ที่เรียกว่าตัวจัดการการร้องขอ ดังนั้นตอนนี้ฉันจะมีชนิดของการทำ สิ่งที่มีฟังก์ชั่นนี้ใช่มั้ย ดังนั้นนี่คือสิ่งที่ฉันทำคือการมีนี้ สายที่ไม่เท่ากับเซิร์ฟเวอร์ var HTTP.create เซิร์ฟเวอร์และจากนั้นฉัน ผ่านในการดำเนินการตามคำขอ ดังนั้นนี่คือชนิดของโหนด วิธีการสร้างเซิร์ฟเวอร์ และแจ้งให้ทราบว่าฉันผ่าน ในการดำเนินการตามคำขอ ดังนั้นนี่จะบอก createServer ฟังก์ชั่นที่ฉันต้องการให้คุณที่จะทำให้ฉัน เซิร์ฟเวอร์และเมื่อเซิร์ฟเวอร์ที่ได้รับ การตอบสนองที่ผมต้องการให้คุณเรียกสิ่งนี้ว่า ฟังก์ชั่นการจัดการการร้องขอ OK? ดังนั้นเส้นที่สวยมาก เสร็จสิ้นทันที ดังนั้นสายเซิร์ฟเวอร์ var เป็นสิ่งที่ถูกต้อง หลังจากที่คุณทำที่สวยมาก ฉันหมายความว่ามันมีการตั้งค่าบางอย่างภายใน รัฐที่จะรู้ว่าคุณจะต้อง เรียกว่าฟังก์ชั่นการจัดการการร้องขอ แต่ ก็ไม่ได้ไปนั่งที่นั่นและ กล่าวว่ามีผู้ใช้ส่ง ฉันขอยัง? มีผู้ใช้ส่งฉันขอหรือยัง ดังนั้นจึงไม่ได้ปิดกั้น OK? ดังนั้นสิ่งนี้จะทำมันเป็นพื้น ตอนนี้เก็บชี้ไปยังรหัสนี้ นี้ฟังก์ชั่นการจัดการคำขอแล้ว จะเรียกใช้รหัสที่ว่าเมื่อใครบางคน ทำให้การร้องขอ แล้วเราทำ server.listen 1337 มีพลสวย ผมไม่มีเหตุผลใด สำหรับการเลือกตัวเลขที่ มันเป็นแบบสุ่มโดยสิ้นเชิง แต่เพียงระบุพอร์ต ดังนั้นเว็บเซิร์ฟเวอร์ส่วนใหญ่คุณจะเห็นว่าพวกเขา ใช้พอร์ต 80 เนื่องจากว่าเป็นชนิด เช่นการประชุม ดังนั้นถ้าฉันไปที่สิ่งที่ต้องการ ผมไม่ทราบว่า, Wikipedia.org, และฉันใส่ลำไส้ใหญ่ 8 - โอ้ว้าว, คุณไม่สามารถมองเห็นว่า ฉันขอโทษ แต่ถ้าผมทำวิกิพีเดีย - ฉันจะเขียนได้ที่นี่เพียงเพื่อให้ เป็นที่ชัดเจนในกล้อง แต่ถ้าฉันใช้เวลานี้ในเบราว์เซอร์ที่มี ลำไส้ใหญ่ 80 ที่ระบุไป Wikipedia.org ที่พอร์ต 80 ดังนั้นจึงเป็นเหมือนวิธีการที่สหรัฐอเมริกามี พอร์ตหลายเช่นที่คุณสามารถจัดส่ง สิ่งที่ชนิดของ ดังนั้นจึงเป็นไปเช่นนี้โดยเฉพาะ วางบนเซิร์ฟเวอร์นี้ ตกลง ดังนั้นผมจึงเลือกที่จะเพียงแค่ 1,337 มีทั้งช่วงของตัวเลขเป็น ที่คุณสามารถเลือก ที่ไม่ได้พิเศษโดยสิ้นเชิง แต่สิ่งที่ผมจะทำตอนนี้ ที่ฉันจะใช้โหนด ผมขอเข้าจริงว่าทั้งคู่ สายลงเพื่อให้คุณสามารถดูได้ ฉันจะทำโหนดและฉัน จะใช้ simpler.js และเราจะพูดคุยเกี่ยวกับวิธีการที่จะได้รับ โหนดการตั้งค่าในนิด ๆ หน่อย ๆ แต่ตอนนี้มันเป็นเพียงการใช้เซิร์ฟเวอร์ ดังนั้นสิ่งหนึ่งที่เราสามารถลองที่อาจจะไม่ เป็นไปได้ว่าน่าตื่นเต้นคือการที่เราสามารถทำได้จริง พยายามที่จะเข้าใช้งานได้ใน Curl ดังนั้นฉันจะทำ Curl และของฉัน เครื่องโฮสต์ท้องถิ่น นอกจากนี้คุณยังจะเห็นนี้เป็นลายลักษณ์อักษร เช่นนี้บางครั้ง โฮสต์ท้องถิ่นและ 127.0.0.1 เป็นชนิด เช่นเครื่องคอมพิวเตอร์ที่บ้านของคุณ ดังนั้นจึงเป็นเหมือนการพูดคุยกับ คอมพิวเตอร์ของคุณเอง ตกลง แล้วฉันจะบอก 1337 ดังนั้นถ้าผมใช้บรรทัดของรหัสนี้ มันบอกว่าสวัสดีชาวโลก และถ้าผมอยากจะเห็นสิ่งที่ว่า มีข้อความชนิดเนื้อหาธรรมดาหรือ สิ่งที่ฉันยังสามารถใส่ที่นี่ และแจ้งให้ทราบว่ามันไม่พูดตกลง และผมก็มีข้อความธรรมดา แล้วมีชนิดของอื่น ๆ ทั้งหมดนี้ สิ่งที่จะเพิ่มโหนดใน มีสำหรับฉัน นั่นไม่ใช่สิ่งที่สำคัญสุด ผมหมายถึงมีชนิดของเทคนิคบางอย่าง แง่มุมของการที่ว่าเป็นชนิด เย็นที่จะพูดคุยเกี่ยวกับ แต่เพียงเพื่อแสดง คุณก็ยังมีอำนาจในการ การเปลี่ยนแปลงเหล่านี้รอบ ดังนั้นผมก็สามารถเพิ่มพวง ของสิ่งที่ต้องการที่ แล้วตอนนี้ถ้าผมมองในของฉัน การส่งออกก็จะเป็นไปได้ว่า ดังนั้นหัวเหล่านี้หมายถึงสิ่งบางอย่าง เบราว์เซอร์และสิ่งที่ต้องการที่ และส่วนหัวโดยทั่วไปสามารถบอกเบราว์เซอร์ วิธีการตอบสนองต่อสิ่งที่ ถ้าคุณเคยได้ยินคุกกี้ก่อน หรือถ้าคุณเคยรำคาญ โดยหน้าเว็บการตั้งค่าคุกกี้ หรือเปิดบล็อกคุกกี้หรือ สิ่งที่ต้องการที่ จริงๆคุณสามารถตั้งค่าคุกกี้ ในส่วนหัวของเหล่านี้ ดังนั้นพวกเขาจึงบอกเบราว์เซอร์วิธีการ พฤติกรรมในบางกรณี ตกลง เพื่อให้เป็น simpler.js ไม่มีใครมีคำถามใด ๆ ที่ว่าไฟล์ซอร์สโค้ด? ตกลง เย็น เพื่อขอลบ r จากที่ และดูที่ simple.js ดังนั้นนี่คือสวยมาก โปรแกรมเดียวกัน ผมแค่เขียนมันน้อยแตกต่างกัน เพราะผมอยากที่จะเรียงลำดับของไฮไลท์ คุณสมบัติบางอย่างของจาวาสคริปต์ เพื่อแจ้งให้ทราบว่าการดำเนินการตามคำขอ ฟังก์ชั่นได้หายไปโดยสิ้นเชิง โอ้อ๋อไม่คุณมีคำถามหรือไม่ ผู้ชม: ใช่การขัดแย้ง ที่ส่งผ่านไปที่ ฟังก์ชั่นสิ่งที่พวกเขามีอะไรบ้าง เควิน SCHMID: ดังนั้นผู้ที่เป็น วัตถุ JavaScript ในเอกสาร Node.js มัน โดยทั่วไปว่าสิ่งที่วิธีการ ที่มีอยู่ในพวกเขา เราเพิ่งเกิดขึ้นจะมีการเข้าถึง วิธีการที่เรียกว่าหัวเขียนและด้วยเหตุนี้ และสิ่งที่ต้องการที่ แต่มีทั้งกลุ่ม วิธีการมากขึ้น และสำหรับตัวอย่างเช่นหนึ่งของพวกเขา โดยเฉพาะอย่างยิ่งเกี่ยวกับการรับรู้ที่คุณสามารถทำได้ สิ่งที่ต้องการที่จะ rec.method บอกคุณไม่ว่าจะเป็น HTTP ได้รับหรือ คำขอ HTTP และโพสต์ สิ่งที่ต้องการที่ ดังนั้นจึงมีทุกชนิดที่แตกต่างกัน คุณสมบัติ แต่พวกเขาทั้งสอง JavaScript วัตถุและพวกเขาก็มี ฟังก์ชั่นที่ติดอยู่กับพวกเขาว่าคุณ สามารถเขียนสิ่งที่จะ OK? เพื่อแจ้งให้ทราบว่าการดำเนินการตามคำขอ หายไปโดยสิ้นเชิง แต่รหัสที่ผมมีในคำขอ จัดการยังคงมี ผมยังมี res.writeHead นี้ และผมยังมี res.end นี้ และสิ่งนี้เป็นตัวอย่างของใน JavaScript เป็นความคิดในการนี​​้ ฟังก์ชั่นที่ไม่ระบุชื่อ และไม่ระบุชื่อเหมือนชื่อที่เหมาะสม สำหรับมันเพราะมันไม่ได้อย่างแท้จริง มีชื่อ มีฟังก์ชั่นการร้องขอไม่ได้ จัดการในนั้น มีไม่มีชื่อ แต่ก็ยัง คือการโต้แย้ง ดังนั้นผมจึงยังคงมีความละเอียดและรับรู้ และฉันยังคงมีรหัส นี้จะปรับได้อย่างสมบูรณ์แบบ รหัส JavaScript ดังนั้นผมจึงสามารถประกาศฟังก์ชั่นโดยไม่ต้อง อย่างชัดเจนให้มันชื่อ มันเล็ก ๆ น้อย ๆ ทำให้เกิดความสับสนในตอนแรก มีบางสิ่งที่มีประโยชน์เช่นนี้ ที่คุณสามารถทำอะไรกับ ฟังก์ชั่นที่ไม่ระบุชื่อเหล่านี้ ไม่มีใครมีคำถามใด ๆ เกี่ยวกับเรื่องนี้ หรือจะเป็นเพียงแค่การตกลงสำหรับตอนนี้ การเรียงลำดับของก็ยอมรับว่ามัน จะทำในสิ่งเดียวกันได้หรือไม่ ครับ? ผู้ชม: ฟังก์ชั่นเป็นครั้งแรก ชั้นใน JavaScript? เควิน SCHMID: พวกเขาเป็นครั้งแรก ชั้นใน JavaScript และเพิ่งรู้ว่าแนวคิดเหล่านี้ของ ผ่านในการทำงานที่ไม่ระบุชื่อเช่น นี้นำไปใช้กับจาวาสคริปต์ที่คุณ อาจเขียนในโครงการสุดท้ายของคุณสำหรับ เว็บเบราเซอร์เกินไป ดังนั้นสำหรับตัวอย่างเช่นในงาน JavaScript ใน เบราว์เซอร์ของคุณก็ยังค่อนข้างเหตุการณ์ แรงผลักดันในความรู้สึกว่าสิ่งที่คุณจะ มีคือเมื่อผู้ใช้คลิกที่นี้ ปุ่มฉันต้องการให้คุณเรียกใช้รหัสนี้ ดังนั้นจึงเป็นชนิดเดียวกันของความคิดของ ด้านลูกค้าเมื่อคลิกเมาส์หรือพวกเขา เมาส์มากกว่าภาพบางอย่างกับคุณ หน้าเว็บเรียกใช้รหัสนี้ ที่สามารถนำไปใช้กับเซิร์ฟเวอร์ เพื่อให้เป็นชนิดเช่นที่น่าตื่นเต้น เหตุผลว่าทำไม JavaScript เป็นจริงๆ คนที่เหมาะสมหรือบางคนคิดว่ามันเป็น ภาษาที่เหมาะสมสำหรับชนิดของการนี​​้ เซิร์ฟเวอร์ควบคุมเหตุการณ์เพราะคุณมี ฟังก์ชั่นที่ไม่ระบุชื่อเหล่านี้ คุณมีความคิดทั้งหมดของ รหัสไม่ตรงกันนี้ ตกลง ใครมีคำถามหรือข้อสงสัย ตกลง เพื่อให้เป็น simple.js ดังนั้นเรามาดูอีกหนึ่ง หรือคู่มากขึ้น ดังนั้นนี่คือ sleep.js ดังนั้นใครที่คุ้นเคยกับ C ฟังก์ชั่นการนอนหลับ จากอาจจะเป็นหนึ่งของการบรรยายก่อนหน้านี้ หรือสิ่งที่ต้องการที่ ดังนั้นโดยทั่วไปคุณสามารถส่งผ่านในฉันคิดว่า จำนวนวินาทีหรือถ้าคุณกำลังใช้ยู นอนหลับจำนวนมิลลิวินาที หรือนาโนวินาที และพื้นโปรแกรมก็จะหยุด การทำงานสำหรับระยะเวลาที่ ใช่มั้ย? และจากนั้นก็จะตื่นขึ้นมาและในที่สุด แล้วมันก็จะยังคงทำงานอยู่ โปรแกรม ดังนั้นเซิร์ฟเวอร์นี้จัดเรียงของให้ การแสดงผลของการนอนหลับ เพื่อแจ้งให้ทราบว่าเรามีเหมือนกัน res.writeHead 200 ด้วยส่วนหัวเป็น ก่อน แต่แล้วเรากำลังเรียกร้องนี้ ฟังก์ชั่นที่เรียกว่าหมดเวลาที่กำหนด ตั้งค่าการหมดเวลายังมีอยู่ใน เว็บเบราว์เซอร์ของ Google Chrome หรือ Safari หรืออะไรก็ตาม และโดยทั่วไปสิ่งที่มันทำที่นี่ มันคือการสละในการทำงาน แจ้งให้ทราบอีกครั้งก็คือ ฟังก์ชั่นที่ไม่ระบุชื่อ เพื่อให้เป็นชนิดของเย็นเพราะเรา โดยใช้ฟังก์ชั่นที่ไม่ระบุชื่อภายใน ฟังก์ชั่นที่ไม่ระบุชื่อซึ่ง อาจจะดูแปลก ๆ แต่การฟังก์ชั่นที่ซึ่งเป็น โดยทั่วไปการพูด - และวิธีการนี​​้ ผลงานที่อยู่ใน 5,000 มิลลิวินาทีที่ฉันต้องการ คุณจะดำเนินการฟังก์ชั่นที่ เพียงแค่สิ้นสุดการตอบสนองและเขียนเดี๋ยวก่อน ดังนั้นนี้จะช่วยให้การแสดงผลของเช่น นอนหลับ แต่วิธีการนี​​้จริง ทำงานคือเราจะวิ่งผ่าน สายนี้ได้อย่างรวดเร็ว เราเพียงแค่เขียนบางสิ่งบางอย่าง แล้วเรายังจะวิ่งผ่าน สายนี้ได้อย่างรวดเร็ว ดังนั้นเราไม่ได้จริงจะ รอห้าวินาที เรากำลังจะไปทำงาน รหัสนี้ได้ทันที แล้วมีอีกครั้งนี้น้อย ห่วงกรณีที่ตอนนี้มีสิ่งนี้ ลงทะเบียนที่พื้นเป็นเพียง อย่างต่อเนื่องไปรอบ ๆ ในวงกลม และมองไปที่นาฬิกาในตัวเดียว ด้ายและคำกล่าวที่ว่ามีห้าวินาที ยังผ่าน? และจากนั้นเมื่อเห็นว่าที่สอง มือได้ย้ายเช่นห้าวินาทีหรือ สิ่งที่แล้วก็ตื่นขึ้นมาและบอกว่า โอ้สิ่งที่ฉันต้องทำอย่างไร โอ้ฉันต้องเรียกใช้รหัสนี้ และจากนั้นก็จะ ทำงาน res.end เดี๋ยวก่อน ดังนั้นอีกครั้งเราจะไม่ต้องรอที่นี่ ดังนั้นจึงไม่ว่ารหัสนี้ภายใน ฟังก์ชั่นนี้จะใช้เวลาห้า วินาทีในการวิ่ง รหัสนี้จะทำงานสวยมาก ทันทีอย่างน้อยเมื่อเทียบกับ ห้าวินาทีที่เรากำลังพูด ถึงก่อนหน้านี้ก่อนที่จะ ดังนั้นเพียงแค่นี้จะแสดงให้เห็นในการกระทำ ฉันจะทำ Node.sleep.js และฉันไม่เลอะอะไร อาจจะ ขอโทษ ลองมาดูสิ่งที่เราสามารถทำได้เพื่อแก้ไขปัญหานี้ ตกลง ดังนั้นแน่นอนใช้ Node.js. ฉันแค่ล้อเล่น ตกลง เพียงหนึ่งวินาที ตกลง ฉันรู้ว่ามันคืออะไร ดังนั้นปัญหาที่อยู่ในแท็บอื่น ๆ ของฉัน ที่นี่ผมกำลังวิ่งอยู่บนโหนด ที่อยู่เดียวกัน, 1337 ดังนั้นข้อผิดพลาดที่นี้โยนถ้าเรามอง ที่มันเป็นจริงอย่างใกล้ชิดที่อยู่ใน ใช้ EADDRINUSE ดังนั้นฉันถูกแล้วใช้ 1337 ที่นี่ ดังนั้นถ้าผมปิดนี้ออกแล้วตอนนี้ผม พยายามที่จะทำงานนี้หวังว่าทุกอย่าง จะดี ตกลง ดังนั้นคุณจึงสามารถมีการจัดเรียงสิ่งหนึ่งเท่านั้น ของการฟังบนพอร์ตในครั้งเดียว วิธีอื่นจะได้รับสำหรับฉัน เพียงแค่การแก้ไขโปรแกรมที่และทำให้ มันเป็นเช่น 1338 หรือสิ่งที่ เช่นนั้น แต่ตอนนี้การนอนหลับที่ทำงาน จึงขอจริงพยายามที่จะออกมาใน เบราว์เซอร์ในเวลานี้เพราะมันเป็น ไม่น่าตื่นเต้นเล็กน้อยที่จะเห็น ในสถานี ดังนั้นฉันแค่จะไปที่ 127 ที่อยู่อีกครั้งที่ 1337 และถ้าคุณสามารถเห็นมัน - ผมไม่ทราบว่าถ้าคุณสามารถ - แต่ฉัน เบราว์เซอร์การมากนานมาก เวลาในการโหลดหรือชอบห้าวินาที แล้วหลังจากนั้นในที่สุดมันก็ จบลงด้วยการตอบสนอง และคุณไม่สามารถมองเห็นได้เพราะสิ่งที่ จะถูกย้ายไปเล็ก ๆ น้อย ๆ แต่ถ้าผมทำ นี้มีขนาดเล็ก ๆ น้อย ๆ ที่คุณ สามารถมองเห็นมันบอกว่าเดี๋ยวก่อน ดังนั้นผมจึงมีเฮ้ แต่ หลังจากห้าวินาที และก็อาจจะมีการทำความสะอาดเพียงเล็กน้อยที่จะเห็น ได้ที่นี่บนขั้วดังนั้นฉัน จะทำ - ขอทำที่นี่ - ขอทำ Curl อยู่ที่ 1337 อีกครั้งกับ และฉันเพียงแค่ชนิดของต้องนั่ง ที่นี่สำหรับห้าวินาที แต่สังเกตเห็นว่าเซิร์ฟเวอร์ สามารถรับการตอบสนองใหม่ ดังนั้นจึงพิมพ์เดี๋ยวก่อน และเพื่อการสาธิตนี้เป็นสิ่งที่ ฉันจะทำในแท็บอื่น ๆ - จึงขอบอกว่าฉันทำเช่นนี้ในแท็บอื่น ฉันจะทำ Curl และเดียวกัน สิ่งที่อีกครั้ง และฉันจะพยายามที่จะเตะเหล่านี้ ผู้ชายออกไปในเวลาเดียวกัน ดังนั้นฉันจะทำเช่นนี้และฉัน จะไปแข่งที่นี่และฉัน จะทำมันอีกครั้ง และขอให้มันเพื่อให้คุณ สามารถมองเห็นทั้งสองของพวกเขา หนึ่งที่พิมพ์เฮ้และหนึ่งที่ พิมพ์ทุกอย่างที่เฮ้ - ขอทำทดลองอีกครั้ง ที่จริงขอใช้นี้ หลอกลวงถ้าที่ตกลง ดังนั้นฉันจะใช้สิ่งที่เปลือก ช่วยให้ฉันไปทำงานเป็นสองชุด ของโปรแกรมนี้ในแบบคู่ขนาน ดังนั้นมันจะเรียกใช้โปรแกรมครั้งแรกและ โปรแกรมที่สองในแบบคู่ขนาน ดังนั้นตอนนี้ถ้าผมกด Enter ก็จะ เพื่อให้ขอให้สวยมาก ทันทีในเวลาเดียวกัน จึงขอให้นี้ยิง ดังนั้นตอนนี้สังเกตเห็นมันบอกว่าสองกระบวนการ และถ้าคุณอยากรู้อยากเห็นที่ 27,000 จำนวนนั้นเป็นกระบวนการ ID แล้วสังเกตเห็นพวกเขาพิมพ์ เดี๋ยวก่อนในเวลาเดียวกัน มันไม่ได้เหมือนที่เราต้องรอห้า วินาทีสำหรับหนึ่งแล้วหลังจากนั้น ห้าวินาทีต่อมาได้รับที่สอง ดังนั้นที่ชนิดของในบางวิธีก็ ไม่ได้จริงๆหลักฐาน แต่ก็ หลักฐานที่ใช้งานง่ายที่มันไม่ใช่แค่ เช่นรอห้าวินาทีและการปิดกั้น หัวข้อทั้งหมด ตกลงเย็น อาโรนจึงถามคำถามก่อนหน้านี้ว่า เป็นสิ่งที่ดีถ้าเราไม่ทำอะไร - ครับ? ผู้ชม: รอ วิธีการที่แตกต่างจาก บัฟเฟอร์ printf แต่? ไม่ได้ทำเช่นนั้นได้โดยอัตโนมัติ ทำไมเราต้องกังวลเกี่ยวกับมันได้หรือไม่ เควิน SCHMID: โอ้, คุณสามารถ บอกว่าอีกครั้งหนึ่ง ผู้ชม: ไม่ชอบกันชน printf ทำสิ่งเดียวกันแน่นอน เควิน SCHMID: บัฟเฟอร์ printf? ผู้ชม: ใช่ ตกลง ไม่ได้อยู่ในส่วนหนึ่งของแบบทดสอบที่พวกเขา พูดคุยเกี่ยวกับวิธีการที่เหมาะสมถ้าคุณ printf บางสิ่งบางอย่างแล้วมันได้หยุดอย่างใดอย่างหนึ่ง ที่สองและจากนั้นคุณก็มีวงสิบ ครั้งก็จะรอสิบวินาทีและ printf แล้วทุกอย่างร่วมกัน เควิน SCHMID: โอ้, โอคลาโฮมา ผู้ชม: มันทำแบบเดียวกัน สิ่งที่แล้วในกรณีนี้ เควิน SCHMID: ดังนั้นคำถามคือ โดยทั่วไปในหนึ่งในอดีตแบบทดสอบ หรือสิ่งที่มีคำถามว่า โดยทั่วไปถ้าคุณบอกว่าพิมพ์ฉ 10 สิ่งในเวลานอนแล้วเหมือนใน กระบวนการของการพิมพ์ที่ออกมา ที่ท้ายด้วยเหตุผลบางอย่างที่มันจะ เพียงแค่การถ่ายโอนข้อมูลทั้งหมดที่ออกมาบนหน้าจอ ดังนั้นจึงมีชนิดที่แตกต่างกันของทั้งสอง แนวความคิดที่นี่ ดังนั้นผมคิดว่าสิ่งหนึ่งที่ว่าในนี้ กรณีที่เราจัดการกับสองที่แตกต่างกัน การเรียงลำดับของคนถามเซิร์ฟเวอร์ สิ่งในเวลาเดียวกัน และเหตุผลที่ว่าชนิดของ printf รอเช่นนั้นและทิ้งมันทั้งหมดออก ที่ครั้งหนึ่งเคยเป็นที่เกี่ยวข้องกับ วิธีชนิดของ printf - ดังนั้น printf ทางเป็นจริง ดำเนินการเป็นมันเป็นพื้นมีการ พูดคุยกับระบบปฏิบัติการที่จะเขียน สิ่งที่จะคอนโซลที่ ดังนั้นจึงไม่ต้องการที่จะทำทุกที่ สิ่งที่ได้ทันทีเมื่อคุณพูด ​​printf สตริงเพราะบางที่อาจ ได้รับราคาแพงหากจะมีการ ทำอย่างนั้นทุกครั้ง ดังนั้นถ้าคุณทำ printf เดี๋ยวก่อนโปรแกรมของคุณ อาจไม่จริงพิมพ์ว่า ทันทีที่คอนโซล มันอาจจะบอกว่าตกลงฉันเขียนมัน แล้วชนิดของรอสำหรับคุณที่จะให้ มันเล็ก ๆ น้อย ๆ ก่อนที่จะจริง เขียนมันออกไปยังคอนโซล ดังนั้นเหตุผลที่ว่ากรณีที่เกิดขึ้น - และมันเป็นชนิดที่ไม่เกี่ยวข้อง นอน - คือว่าการนอนหลับเป็นจัดเรียงของเพียงแค่ ฉีดในนั้นแสดงให้เห็นถึง ความเป็นจริงว่ามันไม่ได้เขียน มันพร้อมกัน แต่เหตุผลที่ว่าเป็นเพียง ผลการดำเนินงานเพื่อที่คุณจะได้ไม่ต้อง ทำให้รายชื่อที่หลาย ระบบปฏิบัติการ แต่ที่นี่คือสิ่งที่เราจริงๆพยายามที่จะทำ การนอนหลับที่มีสิ่งนี้เป็นเพียงแค่การแสดง ว่าเมื่อเรามีคนสองคนที่เข้ามาเยี่ยมชม เว็บไซต์นี้ก็จะไม่ใส่ พวกเขาอยู่ในสายที่มันจะพูด ฉันมีที่จะช่วยให้คุณและจากนั้นเมื่อฉัน เสร็จสิ้นทั้งหมดช่วยให้คุณหลังจากที่เหล่านี้ ห้าวินาทีแล้วฉันจะไป ย้ายไปยังคนถัดไป ดังนั้นขอเป็นคนแรกที่ไม่ได้ ผูกห่วงกรณีที่ หากที่ทำให้รู้สึก แต่ที่นี่เป็นจริงเช่น ของสิ่งที่จะผูก ขึ้นห่วงกรณี ดังนั้นนี่คือฟังก์ชั่นที่น่ากลัวที่จะ คำนวณ nth Fibonacci มันอย่างแท้จริงเป็นวิธีที่เลวร้ายที่คุณสามารถ คำนวณจำนวน Fibonacci nth และนี่คือความจริงเพียงเพื่อรับทราบ ที่นี้มาจาก มีจริง - ฉันหมายความว่าคุณสามารถพยายามที่จะไปหามัน - แต่ มีเช่นบล็อกที่มีความยาวมาก โพสต์ที่มีคนเขียน มันก็เหมือนหนึ่งในบรรดาสิ่ง Reddit แต่ใครบางคนวิพากษ์วิจารณ์ Node.js และ พวกเขาใช้นี้เป็นตัวอย่าง ดังนั้นผมชนิดของต้องการที่จะแสดงให้คุณเห็นเพียงแค่สอง มุมมองที่แตกต่างกันเพียงเพื่อให้ได้ ความเข้าใจทั่วไปของแนวคิด หลังทั้งสองสิ่ง แต่นี้ได้รับการแต่งตั้งเป็นเพียงน่ากลัว, คอมพิวเตอร์ที่ไม่มีประสิทธิภาพอย่างน่ากลัว วิธีการอย่างเข้มข้นในการคำนวณ จำนวน Fibonacci nth ดังนั้นเช่นเดียวกับบันทึกข้างทำไม มันน่ากลัวเหมือนในวิธีการอย่างใดอย่างหนึ่ง ครับ? ผู้ชม: สมมติว่าคุณเริ่มต้น ออกไปกับ 1,000 1,000 แยกเป็น 999 และ 998 แต่ละนี้แยกออกเป็นสองสิ่ง แต่ละนี้แยกออกเป็นสองสิ่ง เควิน SCHMID ขวา ผู้ชม: ทั้งหมดทางลง เควิน SCHMID: แน่นอน ดังนั้นเพียงแค่ทำซ้ำสำหรับกล้องถ่ายรูปถ้าฉัน เรียกโกหกบนเช่น 1,000 หรือสิ่งที่ เช่นนั้นก็เห็นได้ชัดว่าไม่น้อยกว่า หรือเท่ากับหนึ่งดังนั้นฉันจะไป ไปที่กรณีอื่นนี้แล้วฉันจะ ที่จะเรียกปดโกหก 999 บวก 998 แล้วสวยมากทุกที่ งานที่ 999 โกหกไม่เป็น ชนิดของในระดับนี้ ถ้าคุณลงไปก็จะยิ่งมากขึ้นซ้ำซ้อน กว่าที่ แต่ถ้าคุณแค่ คิดคำนวณโกหก 998 ได้รับ เราสวยใกล้ที่จะโกหก 999 ดังนั้นเราจึงควรจะมีน้อยมาก ฉลาดเกี่ยวกับวิธีการที่เรานำมาใช้ชนิดของ เหล่านี้ แต่เราไม่ได้นำ สิ่งเหล่านี้ได้ทั้งหมด ดังนั้นคุณสามารถจินตนาการขนาดมหึมานี้ ต้นไม้ขนาดยักษ์ที่น่ากลัวเพียง แต่อย่างไรก็ตามตกลง เพื่อให้เป็นปด มันใช้เวลาเพียงในขณะที่ทำงาน ครับ? ผู้ชม: [ไม่ได้ยิน] เควิน SCHMID: โอ้, คุณสามารถ ทำซ้ำคำถามหรือไม่ ผู้ชม: [ไม่ได้ยิน] เควิน SCHMID: โอ้ดังนั้นนี่คือรหัสเพียง ที่เป็นไปได้ในการจัดเรียงของ ฝั่งเซิร์ฟเวอร์ ดังนั้นนี้เป็นไปไม่ได้ที่จะพบ ในเบราว์เซอร์หรืออะไร มันเป็นพื้นสิ่งที่เรามีก็คือเมื่อ ผู้ใช้ที่นี่ทำให้สวยมาก คำขอของพวกเขาอีกครั้งเมื่อเราจัดเรียงของ ขอเราจะเรียก ฟังก์ชั่นนี้ในฝั่งเซิร์ฟเวอร์ แล้วเราจะได้รับผลกลับ จากการเรียกฟังก์ชั่นที่ และจากนั้นเราก็จะพิมพ์ มันให้กับผู้ใช้ เพื่อให้ผู้ใช้ไม่ได้จัดการจริงๆ ด้วยฟังก์ชั่นนี้มากเกินไป นั่นคือคำถาม? ไม่ที่ทำให้รู้สึก? ตกลง เย็น ดังนั้นอีกครั้งที่เราทำ res.writeHead ทั้งหมดนี้ สิ่งที่เราพิมพ์ออกมา ส่วนหัว แล้วฉันจบการตอบสนองด้วยการทำ จำนวนมายากลเป็นปด 45 เพื่อให้เพียงใช้เซิร์ฟเวอร์นี้ ดังนั้นฉันจะทำ fib.js. โหนด ดังนั้นตอนนี้เซิร์ฟเวอร์โกหกฉันทำงาน แล้วนี่ฉันจะ ที่จะทำอย่างใดอย่างหนึ่งเหล่านี้ OK? ดังนั้นฉันเพียงแค่จะบอกว่า Curl ดังนั้นมันจะใช้เวลาสักครู่ แต่ หวังว่าในไม่ช้าก็จะจบและ ก็จะพิมพ์ออกมาที่ 45 จำนวนฟีโบนักชี ผู้ชม: [ไม่ได้ยิน] เควิน SCHMID: มันควรจะเป็น ได้ทำสวยเร็ว ดังนั้นจึงควรใช้เวลา 5-6 วินาที ผมไม่ทราบว่าเป็นเพียงการเป็นซูเปอร์ V8 รวดเร็ว แต่ในกรณีใด ๆ นี้เป็น ตัวอย่างที่สั้นมากและจงใจ ไม่งดงามของที่ไม่น่ารำคาญ การคำนวณ ดังนั้นหลังจากที่ในขณะที่มันจะได้รับนี้ แต่ตอนนี้สิ่งที่ถ้าฉันทำอย่างนั้นชนิดเดียวกัน การทดลองก่อนที่ผมทำ สองหน้าในเวลาเดียวกันได้หรือไม่ ดังนั้นที่นี่ฉันจะ Curl บน ที่อยู่นั้นและฉันจะ ที่จะทำ Curl อื่น และจำไว้ว่าเมื่อเราทำอย่างนี้สำหรับ นอนหลับเซิร์ฟเวอร์โดยทั่วไปเมื่อเรามีมัน หลังจากห้าวินาทีที่พวกเขารัก มากทั้งสองกลับมาทางด้านขวา ช่วงเวลาประมาณเดียวกัน ดังนั้นมันไม่ได้ผูกติดอยู่โดยเฉพาะอย่างยิ่งขึ้น แต่ขอลองตอนนี้ ตกลงดังนั้นเราจึงมีสองกระบวนการของเรา โปรดจำไว้ว่าผู้ที่มีรหัสกระบวนการ นี้เป็นไปได้น้อย อึดอัดในขณะที่เราคอก เพื่อให้เพียงอยู่ที่นี่และรอ ดังนั้นหนึ่งของพวกเขาควรจะมา กลับมาหลังจากเช่น - ตกลงดังนั้นหนึ่งกลับมา แต่แล้วทำไมไม่ได้ที่สอง หนึ่งกลับมาเพียง ครับ? ผู้ชม: เซิร์ฟเวอร์ไม่สามารถทำอะไร ในขณะที่มันใช้คอมพิวเตอร์จำนวนมากที่ เควิน SCHMID ขวา ดังนั้นการตอบสนองเป็นเพียงว่าเซิร์ฟเวอร์ มันไม่สามารถทำอะไรได้ในขณะที่ จะคำนวณจำนวนฟีโบนักชีที่ ดังนั้นตอนนี้ฉันเพียงแค่มีสองสิ่งที่ฉันกลับมา แต่ผมคิดว่าเพียงแค่คิดเกี่ยวกับรหัส เล็ก ๆ น้อย ๆ วิธีการที่จะทำงาน และทุกอย่าง ดังนั้นฟังก์ชั่นนี้ที่นี่เป็นรหัสว่า ผมเคยบอกว่าเซิร์ฟเวอร์นี้จะทำงานเมื่อมัน ได้รับการร้องขอเข้ามาใหม่ ดังนั้นจึงเพิ่งจะวิ่งผ่านนี้ รหัสทั้งหมดแล้วก็จะไป กลับห่วงเหตุการณ์ที่เกิดขึ้นแล้วดำเนินการต่อไป การตรวจสอบเหตุการณ์ที่เกิดขึ้นใหม่ ดังนั้นโดยทั่วไปสิ่งที่เราได้เกิดขึ้น เป็นเซิร์ฟเวอร์ ฟังสิ่งใหม่ ๆ คนแรกขอให้สิ่งที่ 45 เราเรียกใช้รหัสนี้ในการคำนวณมัน รหัสนี้จะใช้เวลาประมาณห้า ถึงหกวินาทีในการวิ่ง จากนั้นเราก็กลับไปที่ห่วงกรณี และตรวจสอบสำหรับการร้องขอใหม่ ดังนั้นนี่คือตัวอย่างของวิธีการถ้าคุณ มีสิ่งที่เรียกว่าการคำนวณ ผูกพันหรือใช้จำนวนมากของการคำนวณที่ ไม่อำนาจ แต่เหมือนเป็น คอมพิวเตอร์เข้ม - ผมคิดว่าสิ่งหนึ่งที่จะพูดเกี่ยวกับเรื่องนี้คือ ที่ฟังก์ชั่นนี้จะทำทั้งหมด ส่วนใหญ่สวย ที่มีประโยชน์ขวาทำงาน ตลอดเวลาที่เรียกว่า ฟังก์ชั่นได้รับการทำงานก็เป็นคนน่ารัก มากใช้เวลาส่วนใหญ่ของเวลาเพียงแค่ การคำนวณตัวเลขที่ Fibonacci nth แต่เรามีเพียงหนึ่งหัวข้อ ที่จะจัดการกับ ในรูปแบบอาปาเช่เมื่อคนสองคน ขอที่จะได้รับ 45 โกหกเรา จะมีสองหัวข้อที่แตกต่างกัน แล้วงานของระบบปฏิบัติการ จะได้รับหรือระดับผู้ใช้ รหัสที่จัดการหัวข้อที่จะได้ รับชิ้นที่ขึ้นอยู่กับ CPU หรือแม้กระทั่งถ้าคุณมีซีพียูหลาย แจกจ่ายให้สม่ำเสมอทั่วซีพียู เพื่อที่ว่าพวกเขาทั้งสองเสร็จ ๆ ในเวลาเดียวกัน ดังนั้นเพียงแค่การแสดงให้เห็นว่าเราสามารถเรียงลำดับของ - และนี้ไม่ได้สมบูรณ์แบบรวม การแก้ปัญหา แต่การเรียงลำดับของวิธีการที่เราสามารถ ให้กลับมาที่นี่และทำ นิด ๆ หน่อย ๆ ดีกว่า ดังนั้นสิ่งที่ฉันมีที่นี่เป็นโปรแกรมที่เรียกว่า Fib ซีและนี้โดยทั่วไปใช้ อีกคนหนึ่งของโมดูลโหนดที่เรียกว่า โมดูลกระบวนการเด็ก ดังนั้นผมจึงได้รวมที่ชนิดบน เช่นฉันจะทำปอนด์รวมถึง process.h เด็กหรือบางสิ่งบางอย่าง ตอนนี้ฉันมีการเข้าถึงตัวแปรซีพีนี้ ซึ่งมีการทำงานทั้งหมดของฉัน ดังนั้นตอนนี้สิ่งที่ฉันทำในการตอบสนองนี้ จัดการคือผมใช้โปรแกรมนี้ จุดเฉือนโกหก 45 ดังนั้นสิ่งที่ผมเคยทำ - และฉันแค่ไป จะก้าวออกจากโปรแกรมนี้สำหรับ นิด ๆ หน่อย ๆ - ที่ผมเคยเขียนโปรแกรม C ที่ โดยทั่วไปคำนวณ จำนวน Fibonacci nth ดังนั้นนี่เป็นเพียงโปรแกรมที่ผมเคยเขียน ใน C ที่คำนวณนี้ ฉันสามารถรวบรวมมันและฉันสามารถเรียกใช้ มันที่บรรทัดคำสั่ง และมันจะคำนวณ จำนวน 45 Fibonacci เพื่อแจ้งให้ทราบว่าใช้เวลาเพียง สวยมากเป็นเวลานาน ฉันอาจจะได้ใช้ประ 03 เพิ่มประสิทธิภาพของมันหรือสิ่งที่ต้องการที่ แต่ฉันก็ไม่ได้เหมือนปกติ การตั้งค่าคอมไพเลอร์ และมันพิมพ์มันออกมา แต่ตอนนี้สิ่งที่ฉันชนิดของทำอะไร โอ้ขอโทษไฟล์ผิด ดังนั้นผมจึงทำสิ่งเดียวกันกับ ส่วนหัวก่อน จากนั้นฉันก็ทำ cp.exec นี้ ดังนั้นสิ่งนี้เป็นไปที่จะทำคือการ จะใช้โปรแกรมนี้ แต่วิธีการทำงานนี้คือ ก็จะไม่ต้องรอให้ โปรแกรมจะจบที่ มันก็โดยทั่วไปว่า รันโปรแกรมนี้ ดังนั้นโดยทั่วไปชนิดนี้ใน คำสั่งชนิดพรอมต์ของ และจากนั้นเมื่อคุณทำกับ มันเรียกใช้ฟังก์ชั่นนี้ ดังนั้นตอนนี้เราชนิดของได้รับนี้ สิ่งที่เรียกคืนทั้งหมดของ เหมือนเราไม่ได้รอ ไม่ชนิดของที่ทำให้รู้สึก? ครับ? ผู้ชม: [ไม่ได้ยิน]? เควิน SCHMID: ดังนั้นนี้จะจริง เปิดกระบวนการใหม่ที่จะทำมัน ดังนั้นนี้เป็นจริงในบางวิธี ชั่วไม่ได้ชั่วร้ายสุด แต่มันเป็น สิ่งสำคัญที่จะบอกว่านี้เป็นชนิดของ จะกลับไปอยู่บนมือข้างหนึ่งอาปาเช่ รูปแบบที่เราทำหัวข้อและกระบวนการ สำหรับแต่ละคำขอหรือ กระบวนการสำหรับแต่ละคำขอ ดังนั้นนี่คือชนิดของคล้าย กับสิ่งที่ Apache ไม่ ในบางกรณีมันก็จะใช้ใหม่ ด้ายซึ่งเป็นเพียงเล็กน้อยที่แสงมากขึ้น น้ำหนักกว่ากระบวนการ แต่อาปาเช่ได้ จบลงด้วยการฟอร์กกระบวนการใหม่ ซึ่งเป็นชนิดของสิ่งที่เราทำที่นี่ โดยปริยายด้วยการทำจุดเฉือนโกหก 45 แล้วในกรณีที่เราต้องเสียค่าใช้ชนิดของ ค่าใช้จ่ายของกระบวนการเดียวกัน ดังนั้นนี่เป็นเพียงหนึ่งในสิ่งที่คุณสามารถทำได้ แต่เพียงเพื่อแสดงการเรียงลำดับของการทำงานนี้ และพูดคุยนี้เป็นเพียงการมุ่งจริงๆที่ นำเสนอชนิดของโปรแกรมเหล่านี้เป็น วิธีการที่จะแสดงให้เห็นมุมมองที่แตกต่างกันใน วิธีการออกแบบเซิร์ฟเวอร์ที่ต้องการที่ ดังนั้นนี่คือการทำงานและแล้วตอนนี้ถ้าผมทำ นี้อีกครั้งฉันมีสองรหัสกระบวนการ ขอเพียงพูดคุยเกี่ยวกับ สิ่งที่จะชี้ให้เห็น เพื่อแจ้งให้ทราบว่าพวกเขากำลังเพิ่มขึ้น ที่เย็น เพราะมันเป็น 27,122 ก่อน แต่แจ้งให้ทราบตอนนี้พวกเขากลับมา ที่ประมาณเวลาเดียวกัน และตอนนี้เป็นคำถามที่ดีที่จะถามเกี่ยวกับ เหตุผลก็คือว่ากรณีที่เป็นงานที่มี คือตอนนี้ที่จะทำให้การจัดเรียงของสิ่งเหล่านี้ ชนิดของการเล่นที่เป็นธรรมด้วยกัน อื่น ๆ ทั้งสองกรณีของ จุดเฉือนปด 45 ที่ฉันวิ่ง หรือวิ่งโหนดที่ ที่เรียงลำดับของการทำให้มันเป็นธรรมที่พวกเขาทั้งสอง ได้รับความสมดุลชนิดของเวลาทำงาน? ผู้ชม: [ไม่ได้ยิน] เควิน SCHMID: ใช่ ดังนั้นโดยทั่วไปเมื่อฉันโกหกเฉือนจุด 45 หรือสิ่งที่ต้องการตอนนี้ก็ ชนิดถึงระบบปฏิบัติการ จัดการกับรันไทม์ของโปรแกรมเหล่านั้น และตอนนี้ก็สามารถกำหนดเวลาพวกเขา กับซีพียูที่แตกต่างกันหรือ สามารถกำหนดเวลาได้ มันสามารถตัดขึ้นเวลาหนึ่งที่ CPU ได้รับมันหรือว่าพวกเขาได้รับ การทำงานในหนึ่งซีพียู เพื่อให้เป็นความคิดที่อยู่เบื้องหลังว่า ไม่ว่าทำให้ความรู้สึกที่ทุกคน? ดังนั้นตอนนี้โหนดไม่ได้จริงๆเล่น มีส่วนร่วมในการแบ่งงานเหล่านี้ ตกลง ดังนั้นที่เกือบจะหาตัวอย่าง ฉันแค่อยากจะแสดงให้เห็นอีกหนึ่งสิ่ง เพราะจำนวนมากนี้เพื่อให้ห่างไกลได้รับ ไม่ได้โดยสิ้นเชิงซุปเปอร์ปฏิบัติ ในบางกรณี ฉันสามารถจินตนาการมาที่บ้านหลังนี้ พูดคุยและบางสิ่งบางอย่างและพูดเหมือน ดีฉันชนิดของได้ออกจากการพูดคุยว่า ฉันจะทำให้เซิร์ฟเวอร์ Fibonacci สำหรับ โครงการสุดท้ายของฉัน ดังนั้นนี่เป็นเพียงการเรียงลำดับของอีกหนึ่งตัวอย่าง ที่หวังว่าจะได้รับ - อาจจะไม่ แต่บางที - อีกหน่อย การเรียงลำดับของความเกี่ยวข้องกับโครงการสุดท้ายและ คิดล่วงหน้าสำหรับสิ่งที่ต้องการที่ ดังนั้นนี่คือ chat.js. ดังนั้นนี่เป็นชนิดของชอบตัวอย่างบางส่วน เซิร์ฟเวอร์รหัสด้านที่คุณสามารถใช้เพื่อ ตั้งค่าเซิร์ฟเวอร์การสนทนาเล็ก ๆ เช่น คุณอาจจะได้เห็นใน Facebook Chat หรืออะไรก็ตาม ดังนั้นฉันไม่ได้พูดนี้เป็นเช่น Facebook คุย แต่นี้เป็นชนิดของ เช่นดี - อาจจะไม่ดี แต่อาจจะ จุดเริ่มต้นสำหรับการแชท - ดี เซิร์ฟเวอร์สำหรับเว็บไซต์ของคุณ สำหรับโครงการสุดท้าย ดังนั้นเรามาดูสิ่งที่มันทำ ดังนั้นเราจึงได้รับสิ่งที่พิเศษนี้ ที่ด้านบนนี้ var SIO เท่ากับต้อง Socket.IO ดังนั้นนี่คือสิ่งที่มันไม่ได้อีก มาจริงพร้อมกับ โหนด แต่คุณสามารถติดตั้งได้ มันเป็นโมดูลโหนด ดังนั้นจึงเป็นเพียงบางส่วนเช่น ขยายโหนด SocketIO เป็นจริงจริงๆ ชนิดของเย็น มันเป็นนามธรรมที่เป็นสิ่งที่ ก็ไม่เป็นมันช่วยให้คุณสามารถ มีกระแสของการสื่อสารนี้ ระหว่างเว็บ เบราเซอร์และเว็บเซิร์ฟเวอร์ ดังนั้นส่วนใหญ่จนถึงขณะนี้เราได้มี เหล่านี้ได้อย่างรวดเร็วมากที่สองหนึ่งหรือสอง การสื่อสารระหว่างเว็บที่สอง เบราเซอร์และเว็บเซิร์ฟเวอร์ ดังนั้นจึงเป็นพื้นไปที่ google.com, ได้รับ สิ่งที่ส่งมันกลับมาแล้ว ที่เรากำลังทำ เราไม่เคยพูดถึงอีกเลยจนกระทั่ง ผู้ใช้ในสิ่งอื่น แต่สิ่งที่ Socket.IO และชนิดที่คล้ายกันของ สิ่ง - และ SocketIO เป็นจริงหนึ่ง ในสิ่งที่ถูกสร้างขึ้นในฐานะ WebSocket ซึ่งเป็นประเภทของการใช้งาน เป็นส่วนหนึ่งของ HTM​​L5 - ที่ช่วยให้คุณมีนี้ การเจรจาอย่างต่อเนื่อง และนี่คือประโยชน์อย่างมากในการแชทเซิร์ฟเวอร์ ชนิดของสิ่งเพราะมันเป็น ชนิดเช่นการเจรจาอย่างต่อเนื่องใน วิธีการบางอย่างเพราะถ้าคุณกำลังสนทนา กับคนที่คุณสามารถตอนนี้เพียงแค่ส่ง ข้อความลงท่อแล้ว เซิร์ฟเวอร์สามารถส่งข้อความลง ท่อไปยังบุคคลอื่น ๆ ที่คุณกำลัง พูดคุยกับ แล้วคุณสามารถมีนี้ แลกเปลี่ยนเช่นนั้น เพื่อให้เป็นชนิดของสิ่งที่ SocketIO เป็นสิ่งที่ดี เหตุผลที่ SocketIO ใช้ WebSockets เป็นสิ่งหนึ่งที่อยู่ใน นอกจาก WebSockets เพียงเก่าธรรมดา ก็ยังไม่เทคนิคบางอย่างโดยทั่วไป ทำให้เบราว์เซอร์ที่รองรับ เบราว์เซอร์ดังนั้นเช่น Internet Explorer แต่น่าเสียดายที่ไม่สนับสนุน WebSockets ขวาออกจากกล่อง ดังนั้นจึงใช้บางชนิดอื่น ๆ ของเรียบร้อยเย็น สิ่งที่มี Adob​​e Flash เพื่อให้ คุณจะมีการสนับสนุนเบราว์เซอร์ข้าม เพื่อให้เป็นประโยชน์จริงๆ และอันที่จริงฉันรู้ว่าฉันชนิดของ ทำงานในเวลาที่นี่ แต่ CS50 พูดคุยได้คุณเคยเห็นบางสิ่งบางอย่าง เหมือนผมไม่ทราบว่าว่างดังนั้นจึงเป็น ตอบกลับโพสต์นี้หรือสิ่งที่ เช่นนั้นคุณลักษณะที่? นั่นคือ SocketIO ดังนั้นเมื่อใครสักคนที่จะเริ่มต้นการพิมพ์ กล่องหารือเพื่อให้การตอบกลับหรือ สิ่งที่เบราว์เซอร์ของคุณไม่ว่าสิ่งที่ เรียกว่าใน SocketIO ส่งเสียงชนิดของ เหตุการณ์ที่บอกว่าใครเป็น ตอบกลับโพสต์นี้ จากนั้นเซิร์ฟเวอร์จะบอกว่าตกลง สิ่งที่ฉันต้องทำอย่างไร ดีตอนนี้ฉันต้องบอกผู้ชายคนอื่นที่ ที่อยู่ใน CS50 พูดคุยมอง ที่โพสต์นี้ว่าคนที่ตอบกลับ เพื่อให้เป็นชนิดของสิ่งที่เป็น SocketIO ที่ดีสำหรับชนิดนี้อย่างต่อเนื่องของ กระแสของการสนทนา ตกลง ดังนั้นสิ่งที่ฉันมีที่นี่ - และเรากำลังเพียง จะไม่สนใจการเชื่อมต่ออาร์เรย์ นิด ๆ หน่อย ๆ - สิ่งที่ผมทำคือผมไม่ฟังอีก เพื่อให้เป็นเพียงวิธีการใน Socket.IO เป็น พูดให้ฟังในพอร์ตนี้ แล้วฉันทำเช่นนี้ในการเชื่อมต่อ เพื่อให้เป็นเพียงแค่พื้นซ็อกเก็ต IO ของ วิธีที่บอกเมื่อเราได้รับ การเชื่อมต่อฉันต้องการให้คุณ ที่จะเรียกใช้รหัสนี้ และสังเกตเห็นว่าแทนที่จะต้องรับรู้ res และผ่านในมีฉันมีซ็อกเก็ต และความคิดที่ซ็อกเก็ตนี้เป็นพื้นนี้ สิ่งที่คุณสามารถเขียนและอ่าน จากที่มีผู้ใช้ ข้อความที่อาจจะเป็น และข้อความที่คุณจะส่ง สามารถผ่านซ็อกเก็ตที่ ไม่ที่ทำให้รู้สึก? ดังนั้นจึงเป็นสิ่งที่ดำเนินการต่อไปนี้ ดังนั้นสิ่งที่ฉันทำคือการที่ผมเรียก Socket.emit และกำเนิดจะสวย มากสองอาร์กิวเมนต์ อาร์กิวเมนต์แรกเป็นสตริง เพียงแค่เป็นตัวแทนของชนิดของ สิ่งที่คุณกำลังเปล่ง ดังนั้นสำหรับกรณีนี้ผมได้ใช้ สายนี้ข้อความใหม่ และที่พื้นเพียงแค่บอกว่า ประเภทของสิ่งนี้สิ่งที่ฉัน ส่งเป็นข้อความใหม่ เพื่อให้คุณสามารถฟังประเภทเฉพาะ เช่นข้อความใหม่หรืออะไรก็ตาม โดยใช้จุดบน ดังนั้นการเชื่อมต่อผู้ใช้และส่งไปที่นั่นถ้า คุณดูที่ที่เราเรียกจุดที่ ผู้ที่มีสายอื่น ๆ ที่เป็นตัวแทนของ ประเภทของข้อความที่ผู้ใช้ ดังนั้นจึงเป็นพื้นคุณสามารถมีกำเนิดนี้ หนึ่งในประเภทข้อความเหล่านี้และ แล้วทำอะไรบางอย่างในการตอบสนองต่อ หนึ่งในประเภทข้อความเหล่านี้ ดังนั้นฉันเปล่งข้อความใหม่นี้ เราจะไม่สนใจ connections.push เป็นครั้งที่สอง แต่แล้วฉันก็บอกว่าผู้ใช้ Socket.on ส่ง ดังนั้นตอนนี้ก็ชนิดของชอบเมื่อ ผู้ใช้ส่งข้อความมาให้ฉันฉันต้องการ คุณสามารถเรียกใช้รหัสนี้ และแจ้งให้ทราบว่าการทำงานที่ไม่ระบุชื่อที่ คือการอยู่ในตัวแปรนี้ เรียกว่าข้อมูลที่พื้นไป จะมีข้อความของผู้ใช้ ชนิดดังนั้นตอนนี้เราจะมาพูดคุยเกี่ยวกับ อาร์เรย์การเชื่อมต่อ ดังนั้นนี้ถูกออกแบบมาสำหรับการสนทนาลูกค้า โดยทั่วไปทุกคนที่เป็นชนิดของใน ในห้องสนทนาเดียวกัน ดังนั้นโดยทั่วไปสิ่งที่เราต้องการที่จะเก็บ รอบเป็นอาร์เรย์บางอย่างที่พื้น แสดงให้เห็นถึงทุกคนในการสนทนา วิธีการบางอย่างหากที่ทำให้รู้สึก ใช่มั้ย? เพราะเราจำเป็นต้องรู้ว่าคนที่ผู้ที่ มีเพื่อให้เราสามารถส่งข้อความ ที่คนอื่นส่งมาให้เรา ดังนั้นสิ่งที่รหัสนี้จะเป็นเมื่อผู้ใช้ ส่งข้อความ - ที่ชนิดของ เหตุการณ์ - เราจะเรียกใช้รหัสนี้ และสิ่งที่เราทำคือเราจะดำเนินการผ่านทางนี้ อาร์เรย์ที่เราได้เรียกว่าการเชื่อมต่อ และสวยมากสำหรับการเชื่อมต่อทุก ยกเว้นหนึ่งที่เราว่าเป็น สิ่งที่รหัสนี้กล่าวว่าเราส่งใหม่ ข้อความที่มีข้อความที่แนบที่ ข้อมูล ดังนั้นถ้าคุณสังเกตเห็นที่นี่สิ่งที่ฉันได้เมื่อ ผู้ใช้จริงทำให้ใหม่ การเชื่อมต่อที่ฉันได้เพิ่มเข้ามาด้วย วิธี JavaScript.push นี้เป็น เป็นเพียงคำพูดเช่นเพิ่ม ซ็อกเก็ตเป็นค่าลงไปที่ การเชื่อมต่อของเรามากมาย ดังนั้นตอนนี้เมื่อรหัสนี้จะทำงานก็จะ ส่งสิ่งเหล่านั้นโดยเฉพาะอย่างยิ่ง สัมพันธ์ ดังนั้นนี้สามารถเป็นจุดเริ่มต้นที่ดี สำหรับการทำเซิร์ฟเวอร์การสนทนา หรือสิ่งที่คล้ายกัน และชนิดของสิ่งดีๆที่ รหัสที่คุณเห็นที่นี่เช่นในและ ปล่อยและสิ่งที่ต้องการที่จะเหมือนกัน ชนิดของรหัส JavaScript ที่คุณจะ เขียนลงในเบราว์เซอร์ในการโต้ตอบ กับเซิร์ฟเวอร์ เพื่อที่ว่าทำไม SocketIO เป็นชนิดของ เรียบร้อยและมีประโยชน์ในทางที่ โอ้และเพียงแค่อีกหนึ่งสิ่งที่จริงอย่างรวดเร็ว มีโครงการสุดท้าย CS50 เป็นปีสุดท้าย ที่พื้นดำเนินการสนทนา เซิร์ฟเวอร์ใน Node.js. ฉันคิดว่ามัน Harvardchats.org แต่ฉันไม่ - ตกลง ผมไม่แน่ใจว่าสิ่งที่ URL ที่เป็น แต่ ฉันสามารถส่งออกหลังจากนั้น แต่ชนิดของสิ่งที่เย็น คุณสามารถทำอะไรกับ Node.js. ดังนั้นผมจึงหวังว่าโดยทั่วไปที่พวกคุณมี ความรู้สึกที่ดีของสิ่งที่ Node.js เป็นประโยชน์ และวิธีการที่คุณอาจจะสามารถใช้ โครงการสุดท้ายของคุณ ฉันจะส่งออกบางส่วนมากขึ้น ทรัพยากรพร้อมกับนี้ และขอขอบคุณสำหรับการมา ขอบคุณ [APPLAUSE]