Nodejs 18 & 19 คุณสมบัติใหม่

Feb 19 2023
สวัสดีทุกคน ในบทความนี้เราจะพูดถึงคุณลักษณะบางอย่างของโหนด js เวอร์ชัน 18 และเวอร์ชัน 19 FindLast & FindLastIndex วิธีการอาร์เรย์เหล่านี้คล้ายกับ find และ findIndex ซึ่งมีหน้าที่เหมือนกับ find และ findIndex

สวัสดีทุกคน ในบทความนี้เราจะพูดถึงคุณสมบัติบางอย่างของ node js เวอร์ชัน 18 และเวอร์ชัน 19

FindLast & FindLastIndex

วิธีการอาร์เรย์เหล่านี้คล้ายกับ find และ findIndex ฟังก์ชันเหมือนกับ find และ findIndex แต่มีความแตกต่างบางประการ วิธีการเหล่านี้กำลังมองหารายการในอาร์เรย์จากจุดสิ้นสุด

const array = [{ value: 1 }, { value: 2 }, { value: 3 }, { value: 4 }];

array.find(n => n.value % 2 === 1); // { value: 1 }
array.findIndex(n => n.value % 2 === 1); // 0

// find
array.findLast(n => n.value % 2 === 1); // { value: 3 }

// findIndex
array.findLastIndex(n => n.value % 2 === 1); // 2
array.findLastIndex(n => n.value === 42); // -1

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

node --watch app.js

ก่อน Node.js v18 คุณไม่สามารถใช้ Fetch API ใน Node.js เพื่อขอข้อมูลจาก API ได้ คุณต้องติดตั้ง node-fetch , axios หรือไลบรารีของบุคคลที่สามอื่น ด้วยโหนด js v18 เราไม่ต้องการแพ็คเกจของบุคคลที่สามสำหรับการดึงข้อมูล

async function fetchData() {
  const response = await fetch(
    "https://random-data-api.com/api/name/random_name"
  );
  if (response.ok) {
    const data = await response.json();
    console.log(data);
  }
}

fetchData();

วิธีใหม่ในการ 'นำเข้า' โมดูลที่ใช้คำนำหน้า 'node:' ซึ่งทำให้เห็นได้ทันทีว่าโมดูลนั้นมาจาก Node.js core

โมดูลรันเนอร์ทดสอบในตัว

ด้วยการเปิดตัว Node.js v18 ขณะนี้ตัวทดสอบรวมอยู่ใน Node.js และสามารถเข้าถึงได้ด้วย:

const test = require('node:test')
const assert=require('node:assert')
test("My Test", async (t) => {
    await t.test("It should equal two numbers", () => {
      assert.equal(3, 4);
    });
    await t.test("It should not equal two numbers", () => {
      assert.notEqual(2, 1);
    });
  });

//node --watch yourfile.js

เครื่องยนต์ V8 อัปเกรดเป็น v10.1

Node.js ทำงานด้วยเครื่องยนต์ V8 จากเบราว์เซอร์โอเพ่นซอร์สของ Chromium เครื่องมือนี้ได้รับการอัปเกรดเป็นเวอร์ชัน 10.1 ซึ่งเป็นส่วนหนึ่งของการอัปเดตล่าสุดใน Chromium 101

HTTP หมดเวลา

หมดเวลา http.server มีการเปลี่ยนแปลง:

  • headersTimeout(เวลาที่อนุญาตให้แยกวิเคราะห์ส่วนหัวคำขอ HTTP) ตั้งไว้ที่ 60,000 มิลลิวินาที (60 วินาที)
  • requestTimeout(ระยะหมดเวลาที่ใช้สำหรับคำขอ HTTP) ถูกกำหนดเป็น 300,000 มิลลิวินาที (5 นาที) ตามค่าเริ่มต้น

ช่อง Youtube ของฉัน

ทำได้ดีมากทุกคน