JavaScript ฝั่งเซิร์ฟเวอร์ Node.js 13.0 เปิดตัว

มีอยู่ ปล่อย โหนด js 13.0,แพลตฟอร์มสำหรับการรันแอปพลิเคชันเครือข่ายใน JavaScript ในเวลาเดียวกัน การรักษาเสถียรภาพของสาขาก่อนหน้าของ Node.js 12.x ได้เสร็จสิ้นแล้ว ซึ่งได้รับการโอนไปยังหมวดหมู่ของการเผยแพร่การสนับสนุนระยะยาว ซึ่งมีการอัปเดตที่เผยแพร่เป็นเวลา 4 ปี การสนับสนุนสาขา LTS ก่อนหน้าของ Node.js 10.0 จะคงอยู่จนถึงเดือนเมษายน 2021 และการสนับสนุนสำหรับสาขา LTS 8.0 สุดท้ายจนถึงเดือนมกราคม 2020

หลัก การปรับปรุง:

  • เครื่องยนต์ V8 อัปเดตเป็นเวอร์ชัน 7.8ซึ่งใช้เทคนิคการเพิ่มประสิทธิภาพประสิทธิภาพใหม่ ปรับปรุงการทำลายโครงสร้างออบเจ็กต์ ลดการใช้หน่วยความจำ และลดเวลาในการเตรียมการสำหรับการดำเนินการ WebAssembly
  • การสนับสนุนอย่างเต็มที่สำหรับการทำให้เป็นสากลและ Unicode ที่ใช้ไลบรารีถูกเปิดใช้งานตามค่าเริ่มต้น ไอซียู (International Components for Unicode) ซึ่งช่วยให้นักพัฒนาสามารถเขียนโค้ดได้ การสนับสนุน ทำงานกับภาษาและสถานที่ต่าง ๆ ขณะนี้โมดูล full-icu ได้รับการติดตั้งตามค่าเริ่มต้นแล้ว
  • API เสถียร กระทู้คนงาน, อนุญาต สร้างลูปเหตุการณ์แบบมัลติเธรด การใช้งานจะขึ้นอยู่กับโมดูล worker_threads ซึ่งช่วยให้คุณสามารถเรียกใช้โค้ด JavaScript ในหลายเธรดแบบขนานได้ การสนับสนุนที่เสถียรสำหรับ Workers Threads API ได้รับการแบ็คพอร์ตไปยังสาขา LTS ของ Node.js 12.x;
  • ข้อกำหนดสำหรับแพลตฟอร์มเพิ่มขึ้น สำหรับการประกอบตอนนี้ ต้อง อย่างน้อย macOS 10.11 (ต้องใช้ Xcode 10), AIX 7.2, Ubuntu 16.04, Debian 9, EL 7, Alpine 3.8, Windows 7/2008;
  • ปรับปรุงการรองรับ Python 3 หากระบบมีทั้ง Python 2 และ Python 3 ยังคงใช้ Python 2 อยู่ แต่มีการเพิ่มความสามารถในการสร้างเมื่อมีการติดตั้ง Python 3 ในระบบเท่านั้น
  • การใช้งานเก่าของตัวแยกวิเคราะห์ HTTP (“—http-parser=legacy”) ได้ถูกลบออกแล้ว การเรียกและคุณสมบัติที่ถูกลบหรือเลิกสนับสนุน FSWatcher.prototype.start(), ChildProcess._channel, วิธีการ open() ในอ็อบเจ็กต์ ReadStream และ WriteStream, request.connection, response.connection, module.createRequireFromPath();
  • หลังจาก ออกมา อัปเดต 13.0.1 ซึ่งแก้ไขข้อบกพร่องหลายประการอย่างรวดเร็ว โดยเฉพาะอย่างยิ่ง ปัญหาของ npm 6.12.0 ที่แสดงคำเตือนเกี่ยวกับการใช้เวอร์ชันที่ไม่รองรับได้รับการแก้ไขแล้ว

โปรดจำไว้ว่าแพลตฟอร์ม Node.js สามารถใช้ทั้งสำหรับการบำรุงรักษาเซิร์ฟเวอร์ของแอปพลิเคชันเว็บและสำหรับการสร้างโปรแกรมไคลเอนต์และเครือข่ายเซิร์ฟเวอร์ทั่วไป เพื่อขยายขีดความสามารถของแอพพลิเคชั่นสำหรับ Node.js ที่มีขนาดใหญ่ คอลเลกชันของโมดูลซึ่งคุณสามารถค้นหาโมดูลที่ใช้งาน HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3 เซิร์ฟเวอร์และไคลเอนต์, โมดูลสำหรับการทำงานร่วมกับเว็บเฟรมเวิร์กต่างๆ, ตัวจัดการ WebSocket และ Ajax, ตัวเชื่อมต่อไปยัง DBMS (MySQL, PostgreSQL, SQLite , MongoDB ), เอ็นจิ้นเทมเพลต, เอ็นจิ้น CSS, การใช้งานอัลกอริธึมการเข้ารหัสและระบบการอนุญาต (OAuth), ตัวแยกวิเคราะห์ XML

เพื่อให้แน่ใจว่าการประมวลผลคำขอแบบขนานจำนวนมาก Node.js ใช้โมเดลการเรียกใช้โค้ดแบบอะซิงโครนัสโดยยึดตามการจัดการเหตุการณ์ที่ไม่มีการบล็อกและคำจำกัดความของตัวจัดการการเรียกกลับ วิธีการที่รองรับสำหรับการเชื่อมต่อแบบมัลติเพล็กซ์คือ epoll, kqueue, /dev/poll และ select ไลบรารีใช้สำหรับการเชื่อมต่อแบบมัลติเพล็กซ์ ลิบุฟซึ่งเป็นโครงสร้างส่วนบน ibev บนระบบ Unix และ IOCP บน Windows ไลบรารีถูกใช้เพื่อสร้างพูลเธรด ลิเบโอเพื่อทำการสืบค้น DNS ในโหมดไม่บล็อกรวมอยู่ด้วย ซี-อาเรส. การเรียกระบบทั้งหมดที่ทำให้เกิดการบล็อกจะดำเนินการภายในเธรดพูล จากนั้นเช่นเดียวกับตัวจัดการสัญญาณ ถ่ายโอนผลลัพธ์ของการทำงานกลับผ่านไปป์ (ไปป์) ที่ไม่มีชื่อ การเรียกใช้โค้ด JavaScript นั้นมาจากการใช้เอ็นจิ้นที่พัฒนาโดย Google V8 (นอกจากนี้ Microsoft กำลังพัฒนาตัวแปร Node.js ด้วยกลไก Chakra-Core)

โดยพื้นฐานแล้ว Node.js นั้นคล้ายคลึงกับเฟรมเวิร์ก Perl AnyEvent, เครื่องเหตุการณ์ทับทิม, หลามบิด и การดำเนินการ เหตุการณ์ใน Tcl แต่การวนซ้ำเหตุการณ์ใน Node.js ถูกซ่อนจากนักพัฒนาและคล้ายกับการจัดการเหตุการณ์ในเว็บแอปพลิเคชันที่ทำงานในเบราว์เซอร์ เมื่อเขียนแอปพลิเคชันสำหรับ node.js คุณต้องพิจารณาข้อมูลเฉพาะของการเขียนโปรแกรมที่ขับเคลื่อนด้วยเหตุการณ์ เช่น แทนที่จะทำ "var result = db.query("select..");" ด้วยการรอให้งานเสร็จและประมวลผลผลลัพธ์ในภายหลัง Node.js ใช้หลักการของการดำเนินการแบบอะซิงโครนัส เช่น รหัสจะถูกแปลงเป็น "db.query("select..", ฟังก์ชั่น (ผลลัพธ์) {การประมวลผลผลลัพธ์});" ซึ่งการควบคุมจะส่งผ่านไปยังโค้ดเพิ่มเติมทันที และผลลัพธ์ของการสืบค้นจะถูกประมวลผลเมื่อมีข้อมูลมาถึง .

ที่มา: opennet.ru

เพิ่มความคิดเห็น