تغییرات اخیر

در اینجا اطلاعیه‌ها، نسخه‌ها و تغییرات جدید لیارا فهرست می‌شوند.

معرفی نود جی اس نسخه 24


۹ مرداد ۱۴۰۴

نسخه‌ی ۲۴ از Node.js رسما منتشر شده است و تغییرات قابل توجهی را در حوزه‌های عملکرد، امنیت، تست‌نویسی و تطابق با استانداردهای جدید جاوااسکریپت ارائه می‌دهد. این نسخه به‌ویژه برای توسعه‌دهندگانی که با اپلیکیشن‌های وب، کدنویسی ناهمزمان (asynchronous programming) و مدیریت منابع سرور درگیر هستند، حائز اهمیت است.

در این مقاله، مهم‌ترین ویژگی‌ها و تغییرات نسخه‌ی جدید Node.js را مرور خواهیم کرد.

سرور ابری NodeJS لیارا با پشتیبانی از مقیاس‌پذیری خودکار، امنیت بالا و مدیریت آسان، گزینه‌ای ایده‌آل برای راه‌اندازی سریع برنامه‌های NodeJS است.
✅ پشتیبانی از نسخه‌های مختلف NodeJS ✅ ترافیک نامحدود ✅ مدیریت آسان از طریق پنل کاربر
خرید هاست NodeJS

آنچه در ادامه خواهید خواند:

  • ارتقای موتور V8 به نسخه‌ی 13.6
  • مدل دسترسی (Permission Model)
  • استفاده‌ جهانی از URLPattern
  • بهبودهای مربوط به تست رانر داخلی Node.js
  • ارتقای Undici به نسخه ۷ و به‌روزرسانی npm به نسخه ۱۱
  • حذف و منسوخ شدن قابلیت‌های قدیمی
  • جمع بندی

ارتقای موتور V8 به نسخه‌ی 13.6

یکی از تغییرات بنیادین در Node.js 24، ارتقای موتور V8 به نسخه‌ی 13.6 است. V8 موتور اجرای جاوااسکریپت است که در مرورگر Google Chrome نیز مورد استفاده قرار می‌گیرد و وظیفه‌ی تفسیر و اجرای کدهای جاوااسکریپت را برعهده دارد.

این ارتقا علاوه بر بهبود عملکرد، پشتیبانی از قابلیت‌های جدید جاوااسکریپت را نیز به همراه داشته است:

RegExp.escape

تابع جدید RegExp.escape فرآیند فراردهی (escaping) کاراکترهای ویژه در عبارات منظم را ساده و ایمن می‌سازد. این ویژگی به‌ویژه در سناریوهایی که نیاز به پردازش ورودی‌های کاربر دارید، کاربردی است.

jsCopyEditconst input = 'hello.*+?';
const safe = RegExp.escape(input);
// خروجی: hello\.\*\+\?

Float16Array

نوع داده‌ی جدید Float16Array امکان استفاده از اعداد اعشاری ۱۶ بیتی را فراهم می‌کند. این قابلیت در زمینه‌هایی مانند گرافیک، یادگیری ماشین و سایر کاربردهایی که به عملکرد بالا و مصرف حافظه‌ی پایین نیاز دارند، مفید خواهد بود.

Atomics.pause

در برنامه‌هایی که از Web Worker و پردازش‌های هم‌زمان (concurrent) استفاده می‌کنند، تابع جدید Atomics.pause امکان توقف کنترل‌شده‌ی threadها را فراهم می‌سازد و کنترل دقیق‌تری بر عملکرد هم‌زمان سیستم ارائه می‌دهد.

WebAssembly Memory64

با فعال شدن پشتیبانی از حافظه‌ی ۶۴ بیتی در WebAssembly، اکنون می‌توان از منابع حافظه‌ای وسیع‌تری در پروژه‌هایی با بار محاسباتی بالا استفاده کرد. این قابلیت برای اپلیکیشن‌هایی که نیاز به عملکرد شبه-Native دارند، بسیار ارزشمند است.

معرفی نود جی اس نسخه 24

مدیریت منابع با await using

قابلیت جدیدی با عنوان Explicit Resource Management معرفی شده است که به‌واسطه‌ی کلمه‌ی کلیدی await using، مدیریت خودکار منابعی مانند فایل‌ها یا سوکت‌ها را امکان‌پذیر می‌سازد. این ویژگی از بروز مشکلاتی مانند نشت حافظه جلوگیری می‌کند.

jsCopyEditawait using file = await openFile('data.txt');
// پس از خروج از بلاک، فایل به‌صورت خودکار بسته می‌شود

Error.isError

متد جدید Error.isError(value) امکان بررسی دقیق اینکه آیا یک مقدار واقعاً یک شیء خطا (Error object) است یا خیر را فراهم می‌کند. این ابزار در مدیریت صحیح خطاها و افزایش قابلیت اطمینان کد مؤثر است.

مدل دسترسی (Permission Model)

در Node.js 20، مدلی با عنوان Permission Model به‌صورت آزمایشی معرفی شده بود که در نسخه‌ی ۲۴ با ثبات بیشتری ارائه شده است. فلگ مربوط به این قابلیت از --experimental-permission به --permission تغییر یافته است که بیانگر آمادگی آن برای استفاده‌ی گسترده در محیط‌های تولیدی است.

مدل دسترسی امکان محدودسازی فعالیت‌های اپلیکیشن Node.js را فراهم می‌کند؛ از جمله خواندن یا نوشتن در فایل‌سیستم، انجام درخواست‌های شبکه‌ای یا دسترسی به متغیرهای محیطی (environment variables). این قابلیت گامی مهم به‌سوی پیاده‌سازی اصل حداقل سطح دسترسی (Principle of Least Privilege) در اپلیکیشن‌های سمت سرور است.

مثال:

bashCopyEditnode --permission-fs-read=data.json app.js

استفاده‌ جهانی از URLPattern

در نسخه‌های پیشین، برای استفاده از URLPattern نیاز به import دستی آن وجود داشت. اما در Node.js 24، این کلاس به‌صورت سراسری (global) در دسترس قرار گرفته و امکان تعریف الگوهای URL به‌صورت ساده‌تر و قابل خواندن‌تر فراهم شده است.

این قابلیت برای پیاده‌سازی مسیر‌یابی (routing) در اپلیکیشن‌ها، یا انجام تطبیق‌های ساختاریافته بر روی آدرس‌ها (URLs) بسیار مفید است.

jsCopyEditconst pattern = new URLPattern('/users/:id');
const match = pattern.exec('/users/42');
console.log(match.pathname.groups.id); // خروجی: 42

بهبودهای مربوط به تست رانر داخلی Node.js

تست رانر داخلی Node.js نیز در این نسخه بهبود یافته و اکنون قادر است به‌صورت خودکار منتظر اتمام اجرای زیرتست‌ها (subtests) بماند. این ویژگی از بروز خطاهای ناپایدار در اجرای تست‌ها جلوگیری کرده و فرآیند نوشتن تست‌های دقیق‌تر و قابل اطمینان‌تر را تسهیل می‌کند.

در نسخه‌های پیشین، عدم استفاده از await در زیرتست‌ها ممکن بود موجب اجرای ناقص آن‌ها شود. اما در نسخه‌ی جدید، این فرآیند به‌صورت خودکار انجام می‌شود.

ارتقای Undici به نسخه ۷ و به‌روزرسانی npm به نسخه ۱۱

در Node.js 24، کتابخانه‌ی HTTP مدرن Undici به نسخه‌ی ۷ ارتقا یافته است. این به‌روزرسانی موجب بهبود پشتیبانی از استانداردهای HTTP و افزایش کارایی در زمان استفاده از متدهایی مانند fetch() می‌شود.

همچنین، نسخه‌ی ۱۱ از npm به‌همراه Node.js 24 ارائه شده که تغییرات قابل توجهی را به همراه دارد:

  • نصب سریع‌تر بسته‌ها
  • بهبود در بررسی امنیتی وابستگی‌ها
  • سازگاری بهتر با پروژه‌های مدرن
  • حذف دستور npm hook
  • گسترش اثر --ignore-scripts به تمامی اسکریپت‌های چرخه‌ی عمر (lifecycle)
  • عدم استفاده از مسیر قدیمی بررسی آسیب‌پذیری در صورت بروز خطا

توجه: برای استفاده از npm 11، نسخه‌ی Node.js باید حداقل برابر با 20.17.0 یا 22.9.0 باشد.

حذف و منسوخ شدن قابلیت‌های قدیمی

هم‌زمان با معرفی قابلیت‌های جدید، Node.js 24 برخی ویژگی‌های قدیمی را منسوخ یا در مسیر حذف قرار داده است. توسعه‌دهندگانی که با کدهای قدیمی کار می‌کنند، باید به‌روزرسانی‌های لازم را در نظر بگیرند.

موارد منسوخ‌شده عبارت‌اند از:

  • متد url.parse() — استفاده از API استاندارد WHATWG URL توصیه می‌شود.
  • ساختارهای قدیمی مانند SlowBuffer و tls.createSecurePair
  • برخی ثابت‌های فایل‌سیستم مانند fs.F_OK که در حال خروج از چرخه‌ی پشتیبانی هستند.

جمع‌ بندی

Node.js 24 یک به‌روزرسانی مهم و کارآمد برای توسعه‌دهندگان حرفه‌ای محسوب می‌شود. این نسخه با ارائه‌ی قابلیت‌هایی مانند پشتیبانی از جاوااسکریپت مدرن، بهبود امنیت، ساده‌سازی فرآیند تست‌نویسی، ارتقای HTTP Client و حذف تدریجی ویژگی‌های منسوخ، مسیر توسعه‌ی اپلیکیشن‌های Node را هموارتر، سریع‌تر و ایمن‌تر کرده است.

برای تیم‌ها و پروژه‌هایی که به‌دنبال توسعه‌ی پایدار، عملکرد بالا و امنیت بهتر هستند، به‌روزرسانی به Node.js 24 توصیه می‌شود.

به اشتراک بگذارید

برچسب‌ها: