آنچه در این مقاله میخوانید
معرفی قابلیت های جدید ترین نسخه node js
۱۹ شهریور ۱۴۰۴
نسخه 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) کاراکترهای عبارات منظم را ساده و ایمن میسازد. این ویژگی در سناریوهایی که نیاز به پردازش ورودیهای کاربر دارید، کاربردی دارد.
Node.js چیست؟
Node.js
Float16Array
نوع دادهی جدید Float16Array
امکان استفاده از اعداد اعشاری 16 بیتی را فراهم میکند. این قابلیت در زمینههایی مانند گرافیک، یادگیری ماشین و سایر کاربردهایی که به عملکرد بالا و مصرف حافظه پایین نیاز دارند، مفید خواهد بود.
Atomics.pause
در برنامههایی که از Web Worker و پردازشهای همزمان (concurrent) استفاده میکنند، تابع جدید Atomics.pause
امکان توقف کنترلشدهی threadها را فراهم میسازد و کنترل دقیقتری بر عملکرد همزمان سیستم ارائه میدهد.
WebAssembly Memory64
با فعال شدن پشتیبانی از حافظهی 64 بیتی در WebAssembly، اکنون میتوان از منابع حافظهای بیشتری در پروژههایی با بار محاسباتی بالا استفاده کرد. این قابلیت برای اپلیکیشنهایی که نیاز به عملکرد شبه Native دارند، بسیار ارزشمند است.

مدیریت منابع با await using
قابلیت جدیدی با عنوان Explicit Resource Management معرفی شده است که بهواسطه کلمه کلیدی await using
، مدیریت خودکار منابعی مانند فایلها یا سوکتها را امکانپذیر میسازد. این ویژگی از به روز مشکلاتی مانند نشت حافظه جلوگیری میکند.
await using file = await openFile('data.txt');
Error.isError
متد جدید Error.isError(value)
امکان بررسی دقیق اینکه آیا یک مقدار واقعا یک ارور آبجکت (Error object) است یا خیر را فراهم میکند. این ابزار در مدیریت صحیح خطاها و افزایش قابلیت اطمینان کد موثر است.
مدل دسترسی (Permission Model)
در Node.js 20، مدلی با عنوان Permission Model بهصورت آزمایشی معرفی شده بود که در نسخهی 24 با ثبات بیشتری ارائه شده است. فلگ مربوط به این قابلیت از --experimental-permission
به --permission
تغییر یافته است که بیانگر آمادگی آن برای استفاده گسترده در محیطهای تولیدی است.
مدل دسترسی امکان محدودسازی فعالیتهای اپلیکیشن Node.js را فراهم میکند، از جمله خواندن یا نوشتن در فایلسیستم، انجام درخواستهای شبکهای یا دسترسی به متغیرهای محیطی (environment variables). این قابلیت گامی مهم بهسوی پیادهسازی اصل حداقل سطح دسترسی (Principle of Least Privilege) در اپلیکیشنهای سمت سرور است.
به عنوان مثال:
node --permission-fs-read=data.json app.js
استفاده جهانی از URLPattern
در نسخههای پیشین، برای استفاده از URLPattern
نیاز به import دستی آن وجود داشت. اما در Node.js 24، این کلاس بهصورت سراسری (global) در دسترس قرار گرفته و امکان تعریف الگوهای URL بهصورت سادهتر و قابل خواندنتر فراهم شده است.
این قابلیت برای پیادهسازی مسیریابی (routing) در اپلیکیشنها، یا انجام تطبیقهای ساختاریافته بر روی آدرسها (URLs) بسیار مفید خواهد بود.
بهبودهای مربوط به تست رانر داخلی Node.js
تست رانر داخلی Node.js نیز در این نسخه بهبود یافته و اکنون قادر است بهصورت خودکار منتظر اتمام اجرای زیرتستها (subtests) بماند. این ویژگی از بروز خطاهای ناپایدار در اجرای تستها جلوگیری کرده و فرآیند نوشتن تستهای دقیقتر و قابل اطمینانتر را تسهیل میکند.
در نسخههای پیشین، عدم استفاده از await
در زیرتستها ممکن بود موجب اجرای ناقص آنها شود. اما در نسخه جدید، این فرآیند بهصورت خودکار انجام میشود.
آموزش مفاهیم مقدماتی Node.js
مفاهیم مقدماتی Node.js
ارتقای Undici به نسخه ۷ و بهروزرسانی npm به نسخه ۱۱
در Node.js 24، کتابخانه HTTP مدرن Undici به نسخهی 7 ارتقا یافته است. این بهروزرسانی موجب بهبود پشتیبانی از استانداردهای HTTP و افزایش کارایی در زمان استفاده از متدهایی مانند fetch()
میشود.
همچنین، نسخهی 11 از 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 توصیه لیارا به شما خواهد بود.