انتشار Node 18 و امکانات جدید!

آپدیت node 18 و امکانات جدید
آپدیت node 18 و امکانات جدید


بتازگی نسخه جدید Node.js منتشر شده است که با امکانات جدید و جالبی همراه است و نکته جالب اینکه این نسخه با عدد زوج منتشر شده. این نسخه با کد Hydrogen منتشر شده است و تا آوریل ۲۰۲۵ پشتیبانی خواهد شد.

نسخه‌های زوج به چه معناست؟

نسخه‌های زوج Node با عنوان LTS یا Long Term Support منتشر می‌شوند. به این معنی که تضمین می‌کند باگ‌های بحرانی را تا ۳۰ ماه آینده برطرف می‌شوند. به همین دلیل توصیه می‌شود همیشه از نسخه‌های فعال LTS استفاده کنید.

امکانات جدید نسخه Node 18 چیست؟

ویژگی های جدید Node 18 عبارتند از:

  • افزودن fetch
  • افزودن Test Runner
  • بهبور ماژول‌های ECMAScript
  • پشتیبانی و بهبود AbortController و AbortSignal
  • نسخه V8 10.1
  • پشتیبانی از OpenSSL 3

مشخص است که کار‌های زیادی انجام شده و توسعه Node.js با صورت خوبی در حال پیشرفت است. که به سه مورد آن اشاره می‌کنیم

افزودن fetch

با افزودن fetch هم‌افزایی و یکپارچگی بیشتری بین front-end و back-end ایجاد می‌شود. برای توسعه دهنده Node.js دردسر نصب کتابخانه‌های مختلف برای ارسال و دریافت درخواست‌های API و خواندن اطلاعات Response آشناست. اما Node 18 با افزودن fetch بصورت عمومی و بدون نیاز به فراخوانی این دردسر‌ها را کاهش داده و نیاز به نصب کتابخانه‌ها را کمتر کرده است.

ارسال درخواست و خواندن اطلاعات JSON بدون کتابخانه اضافی به همین سادگی:

const resp = await fetch('https://nodejs.org/api/documentation.json')
if (resp.ok) {
  const data = await resp.json()
  console.log(data)
}
​

افزودن Test Runner

برای تست برنامه‌های Node، کتابخانه‌های زیادی مانند Jest یا Mocha هستند. اما از این نسخه به بعد می‌توانید از خود Node برای نوشتن تست برای برنامه خود استفاده کنید. خروجی test runner بصورت TAP هستند که استفاده از خروجی آنها را ساده‌تر میکند.

ماژول node:test برای این کار فراهم شده که به صورت زیر قابل استفاده است:

import test from 'node:test'
​
test(&quotUser tests&quot, async (t) => {
  const email = &quotuser@example.com&quot
  const password = &quotsecert&quot
  
  await t.test(&quotshould authenticate valid user&quot, (t) => {
    const ok = User.authenticate(email, password)
    assert.strictEqual(ok, true)
  })
})

توجه کنید که این ماژول با پیشوند node فراخوانی شده است.

بروزرسانی V8 Engine به 10.1

در نسخه جدید از V8 Egnine نسخه 10.1 استفاده میشود که در بروزرسانی جدید Chromium 101 منتشر شده بود. برای اطلاعات بیشتر V8 Engine سری بزنید.