آنچه در این مقاله میخوانید
معرفی Node.js نسخه 24، جهشی چشمگیر در عملکرد، امنیت و تجربه توسعه
۲۶ تیر ۱۴۰۴
نسخه 24 Node.js به تازگی منتشر شده و با ارتقای قابلیتهای قبلی به سطح بهتری دست پیدا کرده است. این نسخه با رفع اشکالات قبلی و افزودن قابلیتهای جدید، توانسته است تا سرعت اجرای برنامه را بالا ببرد و امکانات بیشتری را برای مدیریت کدها و ساخت برنامههای جدید فراهم کند. اگر به دنبال یک ابزار قدرتمند و بهروز برای توسعه نرمافزارهای مبتنی بر جاوا خود هستید. این نسخه را از دست ندهید! بنابراین با لیارا همراه باشید.
بدون هیچگونه پیکربندی پیچیده، هاست NodeJS را در چند ثانیه راهاندازی کنید!
✅ عملکرد بالا ✅ بدون نیاز به پیکربندی ✅ راهاندازی سریع
خرید هاست ابری NodeJS
آنچه در ادامه خواهید خواند:
- ارتقای موتور V8 به نسخه 13.6
- مدل دسترسی (Permission Model) پیشرفته تر و URLPattern سراسری
- ارتقای HTTP Client با Undici 7.0.0 و انتشار npm نسخه ۱۱
- موارد منسوخ و حذف شده در Node.js 24
- جدول مقایسه امکانات و تغییرات کلیدی در Node.js 24
- سوالات متداول
- جمع بندی
ارتقای موتور V8 به نسخه 13.6
یکی از مهمترین قابلیتهایی که در Node.js 24 بهبود یافت، ارتقای موتور جاوا اسکریپت V8 به نسخه 13.6 بود؛ همان موتوری که در مرورگر گوگل کروم نیز مورد استفاده قرار میگرفت. این ارتقا تنها یک تغییر عددی نیست، بلکه امکانات جدید و پیشرفتهای را برای جاوا اسکریپت فراهم میکند، از جمله:
- RegExp.escape: ابزاری برای جلوگیری از اشتباهات متنی است، بهخصوص در زمانی که کاراکترهای خاصی استفاده میکنید.
- Float16Array: نوع جدیدی از آرایهها که برای ذخیرهسازی اعداد اعشاری 16 بیتی است که به کمک آن میتوان حافظه کمتری را مصرف کرد. این قابلیت برای برنامههایی مانند یادگیری ماشین که نیاز به سرعت بالا و مصرف مناسبی دارد، بسیار کاربردی خواهد بود.
- Atomics.pause: این نسخه قابلیت جدیدی را برای برنامهنویسان ارائه کرده است تا بتوانند بهصورت همزمان فعالیتهای خود را انجام دهند. ناگفته نماند این قابلیت کنترل دقیقتری بر روی توقف و شروع اجرای بخشهای مختلف برنامه را دارد.
- Explicit Resource Management await using:این قابلیت جدید به برنامهنویسان اجازه میدهد تا منابع، از جمله اتصالات شبکه را بهصورت خودکار و کارآمدتذ مدیریت کنند. زمانی که کار با آن تمام شود، خودکار بسته میشود و نیازی به بستن برنامه نخواهد بود. این عمل باعث میشود که حافظه یا منابع سیستم اشغال نشود و برنامهها بهتر اجرا شوند.

مدل دسترسی (Permission Model) پیشرفته تر و URLPattern سراسری
در نسخه 20 Node.js، قابلیتی تحت عنوان مدل دسترسی (Permission Model) بهصورت آزمایشی معرفی شده بود. این قابلیت در نسخه 24 ارتقا یافته است. مدل دسترسی به توسعهدهندگان این امکان را میدهد تا بتوانند منابع قابلدسترس برای اپلیکیشن خود را محدود کنند؛ بهعنوان مثال میتوان دسترسی به فایلسیستم یا شبکه را کنترل نمود.
علاوه بر این، API جدیدی به نام URLPattern
که قبلتر نیاز به import جداگانه داشت، در حال حاضر و در نسخه جدید بهصورت سراسری در Node.js در دسترس است. این API به توسعهدهندگان اجازه میدهد تا الگوهایی مانند /users/:id
را برای مسیریابی یا تطبیق آدرسها تعریف کنند. استفاده از URLPattern
نسبت به عبارات باقاعده (Regex)، راهحلی ساده، خوانا و موثر برای مدیریت مسیرها خواهد بود.
Node.js چیست؟
Node.js
ارتقای HTTP Client با Undici 7.0.0 و انتشار npm نسخه ۱۱
در نسخهی جدید Node.js 24، کتابخانهی Undici بهصورت پیشفرض اضافه شده است. این کتابخانه، ابزار رسمی Node.js برای ارسال درخواستهای HTTP بهشمار میرود. بهروزرسانی جدید باعث میشود استفاده از fetch()
و سایر درخواستهای شبکهای سریعتر و سازگارتر با استانداردهای جدید HTTP انجام شود؛ بخصوص پروژههایی که تعداد زیادی درخواست به سرور دارند این موضوع اهمیت بیشتری را پیدا میکند.
همچنین در این نسخه، npm نسخه 11 نیز همراه Node.js عرضه میشود. نسخه جدید npm، چند تغییر مهم دارد:
- نصب بستهها سریعتر انجام میشود
- امنیت بهتر هنگام نصب پکیجها فراهم میشود
- هماهنگی بیشتری با ابزارهای جدید جاوا اسکریپت دارد
برخی از نکات مهم در npm 11:
- برای استفاده از آن، باید نسخه Node.js شما حداقل 20.17.0 یا 22.9.0 به بالا باشد.
- زمانی که با دستور
npm init
پروژه جدیدی میسازید، یک سوال جدید برای انتخاب نوع پروژه از شما پرسیده میشود. - دستور
npm hook
حذف شده است. - اگر از پرچم
--ignore-scripts
استفاده کنید، تمام اسکریپتها (حتی اسکریپت prepare) را هم نادیده میگیرد. - اگر بررسی امنیتی گروهی (bulk audit) با خطا مواجه شود، دیگر به روشهای قدیمی برنمیگردد و آن را متوقف میکند.
موارد منسوخ و حذف شده در Node.js 24
همزمان با پیشرفت Node.js، برخی API های قدیمی در حال حذف یا غیرفعال شدن هستند. از جمله:
- متد
url.parse()
که قرار است با API جدید WHATWG جایگزین شود. - ساختارهایی مانند
SlowBuffer
وtls.createSecurePair
منسوخ خواهند شد. fs.F_OK
نیز در حال حذف است.
نکته مهم: اگر با پروژههایی قدیمی کار میکنید، لازم است این تغییرات را رصد و نسبت به بروزرسانی کدتان اقدام کنید.
جدول مقایسه امکانات و تغییرات کلیدی در Node.js 24
ویژگی | توضیحات | وضعیت در نسخههای قبلی | وضعیت در Node.js 24 |
---|---|---|---|
ارتقا به V8 نسخه 13.6 | پشتیبانی از قابلیتهایی مانند:RegExp.escape Float16Array Atomics.pause | وجود نداشت | اضافه شده است |
پشتیبانی سراسری از URLPattern | امکان تعریف مسیرها بدون نیاز به import جداگانه و با سینتکس سادهتر | آزمایشی و محدود | پایدار و سراسری |
مدل مجوزدهی (Permission Model) | قابلیت محدودسازی دسترسی اپلیکیشن به منابعی مانند فایل سیستم و شبکه | بهصورت آزمایشی فعال بود | پایدار و فعال |
پشتیبانی از await using | مدیریت خودکار منابع با آزادسازی آنها پس از پایان استفاده | پشتیبانی نمیشد | پشتیبانی کامل |
تابع جدید Error.isError | راهکاری ساده برای بررسی اینکه آیا یک مقدار واقعا یک شیء خطا است یا خیر | وجود نداشت | اضافه شده است |
WebAssembly با پشتیبانی از Memory64 | امکان استفاده از حافظه 64 بیتی در اپلیکیشنهای مبتنی بر WebAssembly | پشتیبانی نمیشد | اضافه شده است |
کلاینت HTTP با Undici 7.0.0 | عملکرد سریعتر و پشتیبانی بهتر از fetch() و استانداردهای جدید HTTP | نسخههای قدیمیتر Undici | بهصورت پیشفرض فعال است |
npm نسخه 11 | نصب سریعتر پکیجها، بررسی امنیتی دقیقتر و هماهنگی بهتر با پروژهها | نسخههای قدیمیتر (مانند v10) | نسخه 11 بهصورت پیشفرض وجود دارد |
حذف API های منسوخ | آغاز فرآیند حذف تدریجی APIهایی مانند url.parse , domain , SlowBuffer | هنوز در دسترس بودند | در حال حذف تدریجی |
سوالات متداول
در ادامه به سوالاتی که امکان دارد در این زمینه برای شما بدون پاسخ بماند، جوابهای کوتاه اما مفیدی دادهایم که با استفاده از آن میتوانید به سوال خود پاسخ صحیحی را بدهید.
آیا برای استفاده از Node.js 24 باید تغییر خاصی در پروژه ایجاد کرد؟
در بیشتر موارد، پروژههایی که با نسخههای اخیر Node.js (مانند 20 یا 18) سازگار بودهاند، بدون تغییر خاصی روی نسخه 24 نیز اجرا میشوند. اما اگر از API های منسوخ یا بستههای ناسازگار استفاده کرده باشید، ممکن است نیاز به بهروزرسانی کد یا وابستگیها باشد.
مدل جدید مجوزدهی (Permission Model) چه کاربردی دارد؟
مدل مجوزدهی به شما اجازه میدهد تا دسترسیهای برنامه Node.js خود را محدود کنید. این ویژگی برای افزایش امنیت در محیطهای production یا تست بسیار مفید است.
تفاوت Node.js 24 با نسخه LTS قبلی (Node.js 20) در چیست؟
نسخه 24 شامل ویژگیهای جدیدی مانند پشتیبانی کامل از await using
، ارتقای V8 به نسخه 13.6، و مدل مجوزدهی پایدار است. همچنین برخی API های منسوخ در این نسخه حذف یا غیرفعال شدهاند.
معرفی هاست NestJS رایگان
هاست NestJS رایگان
آیا میتوان همچنان از npm نسخه قدیمیتر در Node.js 24 استفاده کرد؟
بله، اما پیشنهاد میشود از npm نسخه 11 که بهصورت پیشفرض همراه Node.js 24 نصب میشود استفاده کنید؛ زیرا عملکرد و امنیت بهتری دارد. در صورت نیاز، میتوانید با دستور npm install -g npm@version
نسخه دلخواه را نصب کنید.
پشتیبانی از URLPattern چه کمکی به توسعه دهندگان میکند؟
URLPattern
تعریف الگوهای مسیر و تطبیق آنها را سادهتر میکند، بخصوص در برنامههای تحت وب یا API هایی که نیاز به بررسی مسیرها دارند. این قابلیت اکنون بهصورت پایدار در Node.js 24 قابل استفاده است.
آیا استفاده از Error.isError()
جایگزین try/catch میشود؟
خیر. این متد صرفا برای بررسی اینکه یک مقدار واقعا یک خطا است (و نه تنها یک آبجکت) استفاده میشود. استفاده از try/catch
همچنان برای مدیریت خطاها بسیار مهم است.
آیا Node.js 24 با تمام پکیج های موجود در npm سازگار است؟
بیشتر پکیجهای محبوب با Node.js 24 سازگار هستند، اما اگر یک پکیج از ویژگیهای خاص یا نسخههای قدیمی Node.js استفاده کند، ممکن است با مشکل مواجه شوید. همیشه قبل از مهاجرت نسخه، تست سازگاری را روی محیط staging انجام دهید.
نحوه نصب Node.js روی سرور مجازی اوبونتو Ubuntu
نصب Node.js روی سرور مجازی اوبونتو
جمع بندی
Node.js 24 تنها یک بهروزرسانی عددی نیست؛ بلکه گامی بزرگ بهسوی بهبود عملکرد، امنیت، و تجربه توسعهدهنده است. این نسخه ابزارهایی واقعی و کاربردی برای سادهسازی توسعه، افزایش بهرهوری و همگامسازی بهتر را فراهم میکند.