คำถามและคำตอบสัมภาษณ์ Node.Js 41 อันดับแรกที่คุณต้องการทราบในปี 2022

เผยแพร่แล้ว: 2021-01-08

เข้าร่วม สัมภาษณ์ Node.js และสงสัยว่าคำถามและการอภิปรายทั้งหมดคืออะไร? ก่อนเข้าร่วมการสัมภาษณ์ Node.js ควรมีความคิดเกี่ยวกับประเภทของ คำถามสัมภาษณ์ของ Node.js เพื่อให้คุณสามารถเตรียมคำตอบสำหรับคำถามเหล่านี้ได้

Node.js เป็นเครื่องมือสร้างสคริปต์ฝั่งเซิร์ฟเวอร์ที่เรียบง่ายแต่ได้รับความนิยมอย่างมากซึ่งใช้ JavaScript คุณสามารถสร้างบางสิ่งง่ายๆ อย่างโปรแกรมบรรทัดคำสั่ง ไปจนถึงเว็บแอปพลิเคชันระดับองค์กรที่ซับซ้อนได้โดยใช้ Node.js บริษัทจำนวนมากที่คุณจะสังเกตเห็นความต้องการสำหรับนักพัฒนา Node.js ที่ผ่านการรับรอง ดังนั้นเพื่อจัดการกับฝั่งเซิร์ฟเวอร์ทั้งหมด คุณสามารถค้นหาความต้องการของ Node.js ได้ในหลายระดับในอาชีพของคุณ

สารบัญ

Node.js คำถามและคำตอบสัมภาษณ์ 2020

ขอแยกบทความออกเป็นสามส่วน:

  1. คำถามและคำตอบสัมภาษณ์ Node.js ระดับพื้นฐาน
  2. คำถามและคำตอบสัมภาษณ์ Node.js ระดับกลาง
  3. คำถามและคำตอบสัมภาษณ์ Node.js ระดับผู้เชี่ยวชาญ

1. คำถามและคำตอบสัมภาษณ์ Node.js ระดับพื้นฐาน

คำถามที่ 1) Node.js และ JavaScript แตกต่างกันอย่างไร

Node.js เป็นล่ามและสภาพแวดล้อมสำหรับ JavaScript ซึ่งส่วนใหญ่ใช้สำหรับการเข้าถึงหรือดำเนินการใด ๆ ที่ไม่ปิดกั้นสำหรับระบบปฏิบัติการใด ๆ เอ็นจิ้นที่กำลังทำงานอยู่คือ Google Chrome

ในขณะที่ JavaScript เป็นภาษาการเขียนโปรแกรมที่ใช้สำหรับกิจกรรมฝั่งไคลเอ็นต์สำหรับเว็บแอปพลิเคชัน เอ็นจิ้นที่ทำงานอยู่คือ Firefox, Safari, Google Chrome เป็นต้น

คำถามที่ 2) Node.js คืออะไร?

Node.js เป็นเฟรมเวิร์กที่มีน้ำหนักเบาแต่ทรงพลังซึ่งพัฒนาขึ้นบนเอ็น จิ้ น JavaScript ของ Chrome มันรวบรวมจาวาสคริปต์ตรงลงในรหัสเครื่องดั้งเดิม ใช้ในการสร้างเว็บแอปพลิเคชันฝั่งเซิร์ฟเวอร์และขยาย JavaScript API เพื่อให้ฟังก์ชันฝั่งเซิร์ฟเวอร์ตามปกติ ผู้คนใช้เฟรมเวิร์กนี้สำหรับการสร้างแอปพลิเคชันขนาดใหญ่ เช่น แอปพลิเคชันหน้าเดียว ไซต์สตรีมวิดีโอ และแอปพลิเคชันบนเว็บอื่นๆ

Q.3) ระบุข้อดีของการใช้ Node.js

  • รวดเร็วเพราะสร้างขึ้นในเอ็นจิ้น Chrome JavaScript ซึ่งทำให้ไลบรารีรันเร็วขึ้นในการรันโค้ด
  • เป็นแบบอะซิงโครนัสเพราะไม่เคยรอให้ API ส่งข้อมูลกลับมา
  • สามารถปรับขนาดได้เนื่องจากกลไกของเหตุการณ์ ซึ่งช่วยให้เซิร์ฟเวอร์ตอบสนองในลักษณะที่ไม่บล็อก
  • เป็นโอเพ่นซอร์สที่นำเสนอชุมชนโอเพ่นซอร์สที่น่าทึ่งซึ่งได้สร้างโมดูลที่ยอดเยี่ยมซึ่งเพิ่มพลังให้กับแอป Node.js
  • Node.js ไม่เคยบัฟเฟอร์ข้อมูลเพราะเอาต์พุตอยู่ในกลุ่ม

Q.4) ระบุความแตกต่างระหว่าง Angular และ Node.js?

Angular เป็นโอเพ่นซอร์สที่ใช้สำหรับเว็บแอปพลิเคชัน & Node.js นั้น เป็นสภาพแวดล้อมรันไทม์ข้ามแพลตฟอร์มสำหรับแอป

Angular เขียนด้วย TypeScript และ Node.js เขียนด้วยภาษา C, C++ และ JavaScript

ส่วนใหญ่จะใช้ Angular สำหรับการสร้างเว็บแอปฝั่งไคลเอ็นต์หน้าเดียว & Node.js ส่วนใหญ่จะใช้สำหรับการสร้างแอปเครือข่ายฝั่งเซิร์ฟเวอร์ที่ปรับขนาดได้และรวดเร็ว

Angular เป็นเฟรมเวิร์กของเว็บแอปพลิเคชัน & Node.js มีเฟรมเวิร์กต่างๆ มากมาย เช่น Partial.js, Sails.js และ Express.js เป็นต้น

Angular เหมาะที่สุดสำหรับการสร้างเว็บแอปที่มีการโต้ตอบสูง & Node.js เหมาะที่สุดสำหรับการพัฒนาโปรเจ็กต์ขนาดเล็ก

Angular h ช่วยในการแยกแอพออกเป็นส่วนประกอบ MVC & Node.js ช่วยในการสร้างแบบสอบถามฐานข้อมูล

Angular ใช้ได้ดีสำหรับการสร้างแอปพลิเคชันแบบเรียลไทม์ & Node.js ใช้ได้ดีสำหรับสถานการณ์ที่ต้องการความเร็วและปรับขนาดได้มากขึ้น

คำถามที่ 5) ทำไม Node.js เป็นแบบเธรดเดียว

มันทำงานบนโมเดลเธรดเดียวแทนการใช้งานแบบเธรดทั่วไป เพื่อช่วยในการประมวลผลแบบอะซิงโครนัส การใช้การประมวลผลแบบอะซิงโครนัสทำให้แอปพลิเคชันสามารถทำงานได้ดีขึ้นและสามารถปรับขนาดได้มากขึ้นภายใต้การโหลดเว็บ

คำถามที่ 6) Node.js ทำงานอย่างไร

Node.js เป็นเครื่องเสมือนที่ทำงานบนสภาพแวดล้อม v8 โดยใช้ JavaScript เป็นภาษาสคริปต์ มันทำงานบนโมเดลเธรดเดียวและ I/O ที่ไม่บล็อก ซึ่งให้อัตราที่สูงเนื่องจากสามารถรองรับคำขอพร้อมกันจำนวนมากขึ้น เนื่องจากใช้โมดูล HTTP จึงสามารถทำงานบนเว็บเซิร์ฟเวอร์แบบสแตนด์อโลนใดก็ได้

Q.7) เราจะใช้ Node.js ได้ที่ไหน?

Node.js สามารถใช้เพื่อสร้าง:

  • แอปพลิเคชั่นเครือข่าย
  • แอปพลิเคชันเว็บแบบเรียลไทม์
  • การใช้งานทั่วไป
  • ระบบกระจาย

คำถามที่ 8) Node.js มีฟังก์ชัน API กี่ประเภท

คุณสามารถค้นหาฟังก์ชัน API ได้สองประเภทใน Node.js ได้แก่ ฟังก์ชันซิงโครนัส ฟังก์ชันบล็อก และฟังก์ชันอะซิงโครนัสที่ไม่บล็อก

Q.9) อะไรคือความแตกต่างระหว่างฟังก์ชันอะซิงโครนัสและฟังก์ชันไม่บล็อก

ฟังก์ชันอะซิงโครนัส (ไม่ซิงโครนัส) คือฟังก์ชันที่เราสามารถสร้างคำขอ HTTP แบบอะซิงโครนัสที่ไม่รอให้เซิร์ฟเวอร์ตอบสนอง ฟังก์ชันเหล่านี้ยังคงย้อนกลับไปยังคำขอที่ได้รับการตอบสนองของเซิร์ฟเวอร์แล้ว

ฟังก์ชันที่ไม่มีการปิดกั้นถูกใช้โดยสัมพันธ์กับการทำงานของ I/O พวกเขาตอบสนองอย่างรวดเร็วด้วยข้อมูลที่มีอยู่และทำงานต่อไปตามคำขอ ในกรณีที่ไม่มีคำตอบกลับมา API จะส่งกลับอย่างรวดเร็วโดยมีข้อผิดพลาด

Q.10) อธิบายโปรแกรมที่ขับเคลื่อนด้วยเหตุการณ์

เป็นแนวทางการเขียนโปรแกรมที่ใช้เหตุการณ์เป็นหลักในการเรียกฟังก์ชันต่างๆ เหตุการณ์อาจเป็นการกดปุ่ม การคลิกเมาส์ ฯลฯ เมื่อมีการทริกเกอร์เหตุการณ์ ฟังก์ชันเรียกกลับจะดำเนินการที่ลงทะเบียนล่วงหน้ากับองค์ประกอบ วิธีนี้ใช้รูปแบบการสมัครสมาชิกเป็นหลัก เป็นเพราะวิธีนี้ Node.js เร็วกว่าเทคโนโลยีอื่นๆ

คำถามที่ 11) ในบริบทของ Node.js ให้อธิบาย REPL

REPL ใน Node.js หมายถึง อ่าน ประเมิน พิมพ์ และวนซ้ำ มันแสดงให้เห็นการตั้งค่าคอมพิวเตอร์ เช่น เชลล์ Unix/Linux หรือคอนโซลหน้าต่าง หรือตำแหน่งที่คำสั่งใดๆ สามารถลงทะเบียนได้ จากนั้นระบบสามารถตอบกลับด้วยเอาต์พุต Node.js มาพร้อมกับสภาพแวดล้อม REPL โดยค่าเริ่มต้น REPL สามารถทำงานต่อไปนี้:

  • อ่าน: มันอ่านอินพุตของผู้ใช้ แปลงเป็นโครงสร้างข้อมูล JavaScript แล้วจัดเก็บไว้ในหน่วยความจำ
  • Eval: รับและประเมินโครงสร้างข้อมูล
  • พิมพ์: มันพิมพ์ผลลัพธ์สุดท้าย
  • วนซ้ำ: วนซ้ำคำสั่งที่กำหนดจนกระทั่ง กด CTRL+C สองครั้ง

คำถามที่ 12) ลงรายการงานที่ควรทำแบบอะซิงโครนัสโดยใช้เหตุการณ์วนซ้ำหรือไม่

  • การทำงานของ I/O
  • การคำนวณหนัก
  • สิ่งที่ต้องปิดกั้น

Q13) เหตุใด Google จึงใช้เอ็นจิ้น V8 สำหรับ Node.js

เอ็นจิ้นรันไทม์ V8 แปลงรหัส JavaScript เป็นรหัสเครื่องดั้งเดิม ส่งผลให้แอปพลิเคชันทำงานรวดเร็ว เอ็นจิ้น Chrome นี้ช่วยเพิ่มความเร็วในกระบวนการดำเนินการและตอบสนอง

Q14) การใช้ Node.js มีประโยชน์อย่างไร?

ดังที่เราได้กล่าวไว้ก่อนหน้านี้ Node.js สร้างขึ้นจากเอ็นจิ้น V8 ซึ่งทำให้ไลบรารีรันโค้ดได้อย่างรวดเร็ว เซิร์ฟเวอร์ที่ใช้ Node.js ไม่รอให้ API ส่งคืนข้อมูล ซึ่งหมายความว่าเป็นแบบอะซิงโครนัส นอกจากนี้ Node.js ยังสามารถปรับขนาดได้สูงเนื่องจากกลไกเหตุการณ์ตอบสนองในลักษณะที่ไม่บล็อก

นอกจากนี้ยังไม่มีการบัฟเฟอร์ในแอปพลิเคชัน Node.js ในช่วงหลายปีที่ผ่านมา ชุมชนโอเพ่นซอร์สขนาดใหญ่ได้เกิดขึ้น โดยมีส่วนสนับสนุนโมดูลที่ยอดเยี่ยมและมอบความสามารถเพิ่มเติมให้กับแอปพลิเคชัน Node.js

2. คำถามและคำตอบสัมภาษณ์ Node.js ระดับกลาง

คำถามที่ 15) ปิรามิดทดสอบคืออะไร?

แผนภาพที่อธิบายอัตราส่วนของจำนวนการทดสอบหน่วย การทดสอบการรวม และการทดสอบแบบ end-to-end จำเป็นต้องเขียนเพื่อให้สร้างโครงการที่ประสบความสำเร็จได้ เรียกว่าปิรามิดทดสอบ

Q16) บทบาทของแพ็คเกจ Express.js คืออะไร?

Express.js เป็นเฟรมเวิร์กที่ช่วยในการจัดการการไหลของข้อมูลระหว่างเซิร์ฟเวอร์และเส้นทางในแอปพลิเคชันฝั่งเซิร์ฟเวอร์ เฟรมเวิร์กที่ยืดหยุ่นนี้สร้างขึ้นบน Node.js โดยเฉพาะในโมดูลมิดเดิลแวร์ที่เรียกว่า connect ในทางกลับกัน โมดูลการเชื่อมต่อใช้โมดูล HTTP เพื่อสื่อสารกับ Node.js ดังนั้น การผสานรวมกับ Express.js กลายเป็นเรื่องง่าย หากคุณกำลังทำงานกับโมดูลมิดเดิลแวร์ใดๆ ที่อิงจากการเชื่อมต่อ

Q17 ) บทบาทของโมดูลยืนยันใน Node.js คืออะไร?

ยืนยันช่วยให้คุณเขียนการทดสอบ ใน Node.js เป็นโมดูลภายในที่มีชุดการทดสอบการยืนยันสำหรับการตรวจสอบค่าคงที่ คุณสามารถใช้โค้ด require('assert') สำหรับแอปพลิเคชันอื่นๆ

คำถามที่ 18) การเรียกกลับครั้งแรกของข้อผิดพลาดใน Node.js คืออะไร

การเรียกกลับครั้งแรกของข้อผิดพลาดใน Node.js ใช้เพื่อส่งข้อผิดพลาดและข้อมูล พารามิเตอร์แรกที่ผ่านฟังก์ชันเหล่านี้จะต้องเป็นอ็อบเจ็กต์ข้อผิดพลาด พารามิเตอร์อื่น ๆ ที่แสดงเป็นข้อมูลที่แนบมา หากไม่มีข้อผิดพลาดหรือปัญหา คุณสามารถดำเนินการตามข้อโต้แย้งที่ตามมาได้

var myPost = โพสต์ใหม่ ({ชื่อ: 'Myexample'});

myPost.save (ฟังก์ชัน (ผิดพลาด myInstance){

ถ้า (ผิดพลาด)

{

// จัดการข้อผิดพลาดและส่งคืน

}

//ไปข้างหน้าด้วย `myInstance`

});

Q19) จุดประสงค์ของไฟล์ package.json คืออะไร?

ไฟล์ package.json ใน Node.js มีข้อมูลเมตาของโปรเจ็กต์ เป็นหัวใจของแอปพลิเคชันที่คุณกำหนดคุณสมบัติของแพ็คเกจ ข้อมูลเมตาของไฟล์สามารถจัดประเภทเพิ่มเติมได้ดังต่อไปนี้:

  • คุณสมบัติ เช่น ชื่อโปรเจ็กต์ ใบอนุญาต ผู้แต่ง เวอร์ชันโมดูลปัจจุบัน คำอธิบายโปรเจ็กต์ ฯลฯ
  • คุณยังสามารถรวมข้อมูลที่จำเป็นเกี่ยวกับโครงการของคุณโดยการเขียนลงในไฟล์ package.json โดยตรง

Q.20) การใช้ module.exports คืออะไร?

ในการรวมโค้ดที่เหมือนกันทั้งหมดให้เป็นโค้ดหน่วยเดียว ซึ่งสามารถดำเนินการได้โดยการย้ายฟังก์ชันที่เกี่ยวข้องทั้งหมดลงในไฟล์ใดไฟล์หนึ่ง เราจำเป็นต้องใช้ module.exports ใน Node.js ตัวอย่างเช่น คุณมีไฟล์ชื่อ Gree.js ซึ่งประกอบด้วยสองฟังก์ชันดังที่แสดงด้านล่าง:

module.exports = {

GreeInHindi: ฟังก์ชั่น (){

ส่งคืน“ นมัสเต”;

},

GreetInEnglish: ฟังก์ชั่น (){

กลับ "สวัสดี";

}};

module.exports มีสองฟังก์ชันซึ่งสามารถนำเข้าในไฟล์แยกต่างหากโดยใช้โค้ดด้านล่าง:

var myGreets = ต้องการ (“./greet.js”);

myGreets.greetInHindi() //NAMASTE

myGreets.greetInEnglish() //สวัสดี

คำถามที่ 21) รูปแบบเครื่องปฏิกรณ์ใน Node.js คืออะไร?

รูปแบบเครื่องปฏิกรณ์ ใน Node.js เป็นทฤษฎีของการดำเนินการ I/O ที่ไม่บล็อก รูปแบบนี้ให้ตัวจัดการที่เชื่อมต่อกับการดำเนินการ I/O แต่ละครั้ง และทันทีที่มีการสร้างคำขอ I/O คำขอนั้นจะถูกส่งไปยังเครื่อง แยก สัญญาณ Demultiplexer นี้เป็นอินเทอร์เฟซการแจ้งเตือนที่สามารถจัดการกับการทำงานพร้อมกันในโหมด non-blocking I/O

นอกจากนี้ยังช่วยในการจัดการคำขอแต่ละรายการในรูปแบบของเหตุการณ์แล้ววางแต่ละเหตุการณ์ในบรรทัด ทำให้เกิดการสร้างคิวเหตุการณ์ พร้อมกัน เรามีเหตุการณ์วนซ้ำ ซึ่งทำซ้ำเหตุการณ์ที่มีอยู่ในคิวเหตุการณ์

คำถามที่ 22) Node.js รุ่น LTS คืออะไร

LTS หมายถึง Node.js เวอร์ชันการสนับสนุนระยะยาวซึ่งได้รับการแก้ไขข้อผิดพลาดที่สำคัญทั้งหมดด้วยการอัปเดตความปลอดภัยและการปรับปรุงประสิทธิภาพ เวอร์ชันทั้งหมดเหล่านี้มีอายุอย่างน้อย 18 เดือนและเน้นที่ปัญหาด้านความปลอดภัยและความเสถียรเป็นหลัก การเปลี่ยนแปลงที่ทำกับเวอร์ชัน LTS นั้นจำกัดเฉพาะการแก้ไขจุดบกพร่อง, npm, การอัพเกรดความปลอดภัย, เอกสารประกอบ และการเพิ่มความเร็วของประสิทธิภาพ

Q.23) คุณเข้าใจอะไรจากการเรียกกลับนรก?

Callback Hell เรียกอีกอย่างว่าปิรามิดแห่งความพินาศ เป็นรูปแบบที่เกิดขึ้นเนื่องจากการเรียกกลับที่ซ้อนกันอย่างมากซึ่งไม่สามารถอ่านได้ โดยปกติแล้วจะประกอบด้วยฟังก์ชันการโทรกลับที่ซ้อนกันหลายฟังก์ชัน ทำให้โค้ดอ่านหรือแก้ไขจุดบกพร่องได้ยาก สาเหตุหลักมาจากการนำตรรกะแบบอะซิงโครนัสไปใช้อย่างไม่เหมาะสม

async_A(ฟังก์ชัน(){

async_B(ฟังก์ชัน(){

async_C(ฟังก์ชัน(){

async_D(ฟังก์ชัน(){

….

});

});

});

});

Q24) แสดงรายการอาร์กิวเมนต์อินพุตของ async.queue

ใน Node.js async.queue รับสองอาร์กิวเมนต์เป็นอินพุต ซึ่งรวมถึงฟังก์ชันงานและค่าการทำงานพร้อมกัน

Q.25) libuv คืออะไร?

เป็นไลบรารีสนับสนุนหลายแพลตฟอร์มของ Node.js ซึ่งส่วนใหญ่ใช้สำหรับ I/O แบบอะซิงโครนัส เริ่มแรกได้รับการพัฒนาสำหรับ Node.js แต่ตอนนี้ยังใช้กับระบบของเราเช่น pyuv, Luvit, Julia เป็นต้น โดยพื้นฐานแล้ว Libuv นั้นเป็นนามธรรมเกี่ยวกับ libev/ IOCP ตามแพลตฟอร์ม โดยเสนอ API ที่ใช้ libev ให้กับผู้ใช้ คุณลักษณะที่สำคัญบางประการของ libuv คือ:

  • เหตุการณ์ระบบไฟล์
  • สำรองข้อมูลวนรอบเหตุการณ์เต็มรูปแบบ
  • ซ็อกเก็ต TCP & UDP แบบอะซิงโครนัส
  • การทำงานของไฟล์แบบอะซิงโครนัสและระบบไฟล์
  • กระบวนการลูก

Q.26) สตรีมใน Node.js

สตรีมทำให้คุณสามารถอ่านและประมวลผลชุดข้อมูลขนาดใหญ่ใน Node.js ออบเจ็กต์เหล่านี้เป็นการรวบรวมข้อมูลที่คล้ายกับสตริงและอาร์เรย์ ช่วยให้คุณอ่านข้อมูลจากต้นทางหรือเขียนไปยังปลายทางได้อย่างต่อเนื่อง ใน Node.js มีสตรีมพื้นฐานสี่ประเภท ได้แก่ อ่านได้ เขียนได้ ดูเพล็กซ์ และแปลง

คำถามที่ 27) คุณอ่านและเรียกใช้ไฟล์ใน Node.js อย่างไร

ใน Node.js มีสองวิธีในการอ่านและรันไฟล์ – readFile และ createReadStream ข้อแตกต่างหลักระหว่างทั้งสองคือ readFile ถูกบัฟเฟอร์อย่างสมบูรณ์ และ createReadStream ถูกบัฟเฟอร์บางส่วน readFile() ส่งคืนการตอบสนองเฉพาะเมื่อไฟล์ทั้งหมดถูกผลักเข้าไปในบัฟเฟอร์ ทำให้เวลาในการประมวลผลช้าลง

ในทางตรงกันข้าม createReadStream จะถือว่ากระบวนการนี้เป็นชุดเหตุการณ์ โดยแยกไฟล์ออกเป็นส่วนๆ และส่งการตอบกลับกลับทีละรายการ ดังนั้นจึงเป็นวิธีที่มีประสิทธิภาพในการประมวลผลไฟล์ข้อมูลขนาดใหญ่

คำถามที่ 28) การใช้งานความปลอดภัยใดบ้างที่มีอยู่ใน Node.js

การตรวจสอบสิทธิ์และการจัดการข้อผิดพลาดเป็นการใช้งานความปลอดภัยหลักสองประการใน Node.js

คำถามที่ 29) มีการจัดการเธรดย่อยใน Node.js อย่างไร

คุณจะคิดว่าเนื่องจาก Node.js เป็นเธรดเดี่ยว คุณจึงไม่สามารถใช้เธรดย่อยได้ แม้ว่ากระบวนการโดยทั่วไปจะไม่เปิดเผยเธรดย่อย คุณยังสามารถดำเนินการงาน I/O แบบอะซิงโครนัสบางอย่างในพื้นหลังได้โดยใช้ spawn() ด้วยเหตุนี้ การวนรอบเหตุการณ์หลักของแอปพลิเคชันจึงไม่ถูกขัดขวาง คุณยังสามารถรวมโมดูล ChildProcess เพื่อใช้แนวคิดการทำเธรดนี้ได้อย่างชัดเจน

3. คำถามและคำตอบสัมภาษณ์ Node.js ระดับผู้เชี่ยวชาญ

Q.30) NODE_ENV มีประโยชน์อย่างไร?

หากโปรเจ็กต์ของคุณอยู่ที่ระดับการผลิต Node.js จะส่งเสริมแบบแผนของการใช้ประโยชน์จากตัวแปร NODE_ENV เพื่อตั้งค่าสถานะ ซึ่งจะช่วยในการตัดสินใจที่ดีขึ้นในขณะที่สร้างโครงการ นอกจากนี้ เมื่อคุณตั้งค่า NODE_ENV เป็นเวอร์ชันที่ใช้งานจริง แอปพลิเคชันของคุณจะทำงานเร็วขึ้นประมาณสามเท่า

คำถามที่ 31) ใน Node.js ความแตกต่างระหว่าง createReadStream และ readFile . คืออะไร

Node.js มีสองวิธีในการอ่านและใช้งานไฟล์ที่ใช้ readFile และ CreateStream readFile() เป็นกระบวนการบัฟเฟอร์อย่างสมบูรณ์ซึ่งตอบสนองเฉพาะเมื่อไฟล์ทั้งหมดถูกผลักในบัฟเฟอร์และอ่าน เป็นกระบวนการที่ใช้หน่วยความจำมาก ซึ่งจะทำงานช้ามากสำหรับไฟล์ขนาดใหญ่

ในขณะที่ในกรณีของ createReadStream ถูกบัฟเฟอร์บางส่วน ซึ่งใช้กระบวนการทั้งหมดเป็นชุดเหตุการณ์ ไฟล์จะถูกแบ่งออกเป็นชิ้นใหญ่ ซึ่งจะถูกประมวลผลและส่งกลับเป็นการตอบกลับทีละรายการ เมื่อเสร็จแล้ว พวกมันจะถูกลบออกจากบัฟเฟอร์ ทำให้มีประสิทธิภาพมากขึ้นสำหรับการประมวลผลไฟล์ขนาดใหญ่

คำถามที่ 32) อธิบายการใช้บัฟเฟอร์คลาสใน Node.js

คลาสบัฟเฟอร์ใน Node.js เก็บข้อมูลดิบเหมือนอาร์เรย์ของจำนวนเต็ม ซึ่งสอดคล้องกับการจัดสรรหน่วยความจำนอกขอบเขต V8 ซึ่งหมายความว่าเป็นคลาสสากล สามารถเข้าถึงคลาสได้โดยไม่ต้องนำเข้าโมดูลบัฟเฟอร์ใน Node.js ความจำเป็นในคลาสบัฟเฟอร์เกิดขึ้นเนื่องจาก JavaScript เข้ากันไม่ได้กับข้อมูลไบนารี

Q.33) แยกความแตกต่างระหว่าง spawn() และ fork()

คุณใช้ spawn() ใน Node.js เพื่อเริ่มกระบวนการใหม่ ด้วยชุดคำสั่งที่ให้มา กระบวนการนี้จะเปิดใช้งานเพียงสำเนาเดียวของโมดูลโหนดบนตัวประมวลผล เนื่องจากไม่มีการสร้างอินสแตนซ์ V8 ใหม่ spawn() จะมีประโยชน์อย่างยิ่งเมื่อกระบวนการลูกของคุณส่งคืนข้อมูลจำนวนมหาศาล

ในทางกลับกัน เมธอด fork() เรียกใช้อินสแตนซ์ใหม่ของเอ็นจิ้น V8 ซึ่งหมายความว่าผู้ปฏิบัติงานหลายคนกำลังทำงานบนโค้ดแบบ Node-based เดียวสำหรับงานต่างๆ

Q.34) การพัฒนาส่วนหน้าและส่วนหลัง

การพัฒนา Front-end ขึ้นอยู่กับคำขอแบบอะซิงโครนัสและ AJAX ในขณะที่การพัฒนาส่วนหลังนั้นใช้สถาปัตยกรรมเซิร์ฟเวอร์ อดีตใช้มาร์กอัปและภาษาเว็บเช่น HTML, JavaScript, CSS ฯลฯ เพื่อวัตถุประสงค์ในการทำ SEO ในขณะที่หลังใช้ภาษาการเขียนโปรแกรม Python, Ruby และอื่น ๆ สำหรับการสำรองข้อมูล การพัฒนาส่วนหน้าสามารถเข้าถึงได้มากกว่าเมื่อเปรียบเทียบกับการพัฒนาส่วนหลัง

คำถามที่ 35) ระบุขั้นตอนของการใช้ฟังก์ชันควบคุมการไหล

โค้ดที่ดำเนินการระหว่างการเรียกใช้ฟังก์ชัน async ใน Node.js คือฟังก์ชันโฟลว์การควบคุม การทำงานของฟังก์ชั่นสามารถอธิบายได้ด้วยขั้นตอนต่อไปนี้:

  • ขั้นแรกให้ควบคุมลำดับการดำเนินการ
  • จากนั้นรวบรวมข้อมูลที่จำเป็น
  • ถัดไป จำกัดการทำงานพร้อมกัน
  • สุดท้าย เรียกใช้ขั้นตอนต่อไปของโปรแกรม

Q.36) ตั้งชื่อคุณสมบัติการจับเวลาของ Node.js

Node.js มีโมดูลตัวจับเวลา ซึ่งประกอบด้วยฟังก์ชันต่างๆ สำหรับการเรียกใช้โค้ดหลังจากช่วงระยะเวลาหนึ่ง ฟังก์ชันต่างๆ ที่มีให้โดยโมดูลนี้:

setTimeout/clearTimeout – ใช้สำหรับโปรแกรมการรันโค้ดหลังจากผ่านไปหลายมิลลิวินาที

setInterval/clearInterval – ใช้สำหรับบล็อกโค้ดหลาย ๆ ครั้ง

setImmediate/clearImmediate – ใช้เพื่อเรียกใช้โค้ดเมื่อสิ้นสุดรอบการวนซ้ำของเหตุการณ์ปัจจุบัน

process.nextTick – ใช้เพื่อตั้งโปรแกรมฟังก์ชันเรียกกลับที่ต้องทริกเกอร์ในการวนซ้ำครั้งถัดไปของ Event Loop

คำถามที่ 37) บอกเราเกี่ยวกับทฤษฎีของ Punycode ใน Node.js หรือไม่

Punycode เป็นไวยากรณ์การเข้ารหัส ใช้เพื่อแปลสตริงอักขระ Unicode (UTF-8) เป็นสตริงอักขระ ASCII พื้นฐาน สิ่งนี้จำเป็นเนื่องจากชื่อโฮสต์รู้จักเฉพาะอักขระ ASCII เป็นค่าเริ่มต้นสำหรับทุกเวอร์ชันหลังจาก 0.6.2 อย่างไรก็ตาม หากคุณต้องการใช้กับเวอร์ชันเก่า คุณสามารถทำได้โดยใช้ไวยากรณ์:

punycode = ต้องการ ('punycode');

คำถามที่ 38) แยกความแตกต่างระหว่าง Node.js และ Ajax?

Node.js เป็น JavaScript ฝั่งเซิร์ฟเวอร์ ซึ่งตรงกันข้ามกับ Ajax ซึ่งเป็นเทคโนโลยีฝั่งไคลเอ็นต์ Ajax เป็นหลักในการอัปเดตหรือแก้ไขหน้าเว็บโดยไม่จำเป็นต้องรีเฟรชหน้า ในขณะที่ Node.js จำเป็นในการพัฒนาซอฟต์แวร์เซิร์ฟเวอร์ที่เซิร์ฟเวอร์มักจะทำแทนเว็บเบราว์เซอร์

Q.39) Node.js มี Debugger หรือไม่?

Node.js เสนอโปรโตคอลที่ใช้ TCP อย่างง่ายรวมถึงไคลเอนต์การดีบักในตัว หากคุณต้องการดีบักไฟล์ JavaScript คุณสามารถใช้การดีบักโหนดอาร์กิวเมนต์ [script.js | -e “สคริปต์” | <host>: <port> ] ตามด้วยชื่อไฟล์ js ที่คุณต้องการดีบัก

คำถามที่ 40) วัตถุสากลคืออะไร?

คุณสามารถใช้วัตถุส่วนกลางใน Node.js ได้โดยไม่ต้องรวมวัตถุไว้อย่างชัดเจน สิ่งเหล่านี้อาจเป็นฟังก์ชันโมดูล สตริง ฯลฯ ที่มีอยู่ในขอบเขตโมดูลของแอปพลิเคชัน บางครั้ง คุณอาจพบพวกเขาในขอบเขตสากล

คำถามที่ 41) อธิบายรหัสทางออกของ Node.js

รหัสทางออกคือชุดของรหัสที่แตกต่างกันซึ่งใช้เพื่อเสร็จสิ้นกระบวนการเฉพาะ มันสามารถรวมออบเจ็กต์ส่วนกลางด้วย ด้านล่างนี้คือตัวอย่างโค้ดทางออกที่ใช้ใน Node.js:

  • ไม่ได้ใช้
  • ไม่พบข้อยกเว้นร้ายแรง
  • ตัวจัดการข้อยกเว้นภายในล้มเหลวรันไทม์
  • ข้อผิดพลาดร้ายแรง
  • ความล้มเหลวในการประเมิน JavaScript ภายใน

เรียนรู้ หลักสูตรวิศวกรรมซอฟต์แวร์ออนไลน์ จากมหาวิทยาลัยชั้นนำของโลก รับโปรแกรม PG สำหรับผู้บริหาร โปรแกรมประกาศนียบัตรขั้นสูง หรือโปรแกรมปริญญาโท เพื่อติดตามอาชีพของคุณอย่างรวดเร็ว

บทสรุป

มาถึงช่วงท้ายของคอลเลกชั่น คำถามและคำตอบในการสัมภาษณ์ของ Node.js ที่ถามบ่อยที่สุด เราหวังว่าคุณจะพบว่าคำถามเหล่านี้มีค่าและสามารถสร้างความประทับใจให้ผู้สัมภาษณ์ของคุณด้วยการตอบคำถามให้ถูกต้อง

หากคุณสนใจที่จะเรียนรู้เพิ่มเติมเกี่ยวกับข้อมูลขนาดใหญ่ ลองดูโปรแกรม Executive PG ของ upGrad & IIITB ในการพัฒนาซอฟต์แวร์แบบครบวงจร ซึ่งออกแบบมาสำหรับมืออาชีพที่ทำงานและมีการฝึกอบรมที่เข้มงวดมากกว่า 500 ชั่วโมง โครงการและการมอบหมายมากกว่า 9 รายการ IIIT-B สถานะศิษย์เก่า โครงการหลักที่นำไปปฏิบัติได้จริง และความช่วยเหลือด้านงานกับบริษัทชั้นนำ

Nodej คืออะไร?

Nodejs เป็นสภาพแวดล้อม JavaScript ฝั่งเซิร์ฟเวอร์ เป็นเหตุการณ์ที่ขับเคลื่อนด้วย ไม่บล็อก และปรับขนาดได้สูง Nodejs ยังเป็นโอเพ่นซอร์ส ดังนั้นจึงฟรี Node.js ใช้สำหรับการพัฒนาโปรแกรมเครือข่ายที่ปรับขนาดได้ Node.js เป็นแพลตฟอร์มที่ไม่ขึ้นกับแพลตฟอร์มและทำงานบนระบบปฏิบัติการ (OS) ต่างๆ และปรับใช้ได้บน Linux, Solaris, Windows และ Mac Node.js ถูกใช้โดยบริษัทต่างๆ เช่น LinkedIn, PayPal, IBM, Microsoft เป็นต้น Node.js คือรันไทม์ JavaScript ที่ใช้สำหรับสร้างแอปพลิเคชันเครือข่ายที่รวดเร็วและปรับขนาดได้ รันไทม์นี้ออกแบบมาเพื่อสร้างแอปพลิเคชันที่มีการทำงานพร้อมกันสูง ซึ่งสามารถรองรับการเชื่อมต่อได้พร้อมกันหลายพันครั้ง

typescript คืออะไร?

typescript เป็น superset ของภาษา JavaScript ที่ Microsoft สร้างขึ้น typescript นำคุณลักษณะภาษาการเขียนโปรแกรมขั้นสูงบางส่วนมาสู่ JavaScript นักพัฒนาสามารถใช้ทักษะการเขียนโปรแกรมฝั่งเซิร์ฟเวอร์ Java ที่มีอยู่กับ JavaScript typescript มีประโยชน์อย่างยิ่งเมื่อพัฒนาเว็บแอปพลิเคชันขนาดใหญ่ TypeScript เป็นภาษาโปรแกรมโอเพ่นซอร์สฟรีที่พัฒนาและดูแลโดย Microsoft เป็น superset ที่เข้มงวดของ JavaScript และเพิ่มประเภทสแตติกที่เป็นตัวเลือกและการเขียนโปรแกรมเชิงวัตถุตามคลาสให้กับภาษา เป็นภาษาสำหรับการพัฒนา JavaScript ในระดับแอปพลิเคชัน

MongoDB คืออะไร?