آنچه در این مقاله میخوانید
معرفی Node.js نسخه 24، جهشی چشمگیر در عملکرد، امنیت و تجربه توسعه
۲۶ تیر ۱۴۰۴
نسخه 24 Node.js به تازگی منتشر شده و با ارتقای قابلیت های قبلی به سطح بهتری دست پیدا کرده است. این نسخه با رفع اشکالات قبلی و افزدون قابلیت های جدید، توانسته است تا سرعت اجرای برنامه را بالا ببرد و امکانات بیشتری را برای مدیریت کدها و ساخت برنامه های جدید فراهم کند. اگر به دنبال یک ابزار قدرتمند و به روز برای توسعه نرم افزارهای مبتنی بر جاوا خود هستید. این نسخه را از دست ندهید! بنابراین با لیارا همراه باشید.
بدون هیچگونه پیکربندی پیچیده، هاست NodeJS را در چند ثانیه راهاندازی کنید!
✅ عملکرد بالا ✅ بدون نیاز به پیکربندی ✅ راهاندازی سریع
خرید هاست ابری NodeJS
آنچه در ادامه خواهید خواند:
- ارتقای موتور V8 به نسخه 13.6
- مدل دسترسی (Permission Model) پیشرفته تر و URLPattern سراسری
- معرفی نسخه هوشمندتر از test runner داخلی
- ارتقای 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 بهصورت آزمایشی معرفی شده بود، حالا در نسخه 24 بهتر شده و پرچم مربوطه از --experimental-permission
به --permission
تغییر یافته است؛ نشانهای از آماده شدن این ویژگی برای استفاده عمومی.
مدل دسترسی امکان محدودسازی منابعی را که اپلیکیشن شما میتواند به آنها دسترسی داشته باشد مانند فایلسیستم یا شبکه فراهم میکند؛ قابلیتی حیاتی برای افزایش امنیت در محیطهای حساس.
همچنین، API جدیدی به نام URLPattern که پیشتر نیاز به import جداگانه داشت، اکنون بهصورت سراسری در دسترس است. این API به توسعهدهندگان اجازه میدهد الگوهایی مانند /users/:id
را برای مسیریابی (routing) یا تطبیق آدرسها تعریف کنند؛ راهحلی بسیار مؤثرتر و خواناتر از استفاده مستقیم از عبارات باقاعده.
معرفی نسخه هوشمند تر از test runner داخلی
اجرای تستها در Node.js نیز با تغییراتی همراه بوده است. تسترانر داخلی اکنون قادر است بهصورت خودکار منتظر اجرای زیرتستها (subtests) بماند.
پیش از این، توسعهدهندگان مجبور بودند برای اطمینان از اجرای کامل زیرتستها، از await
بهصورت دستی استفاده کنند. در نسخه ۲۴، این کار بهصورت خودکار انجام میشود، که باعث کاهش خطاهای رایج و سادهتر شدن فرآیند تستنویسی میشود.
Node.js چیست؟
Node.js
ارتقای HTTP Client با Undici 7.0.0 و انتشار npm نسخه ۱۱
در Node.js 24، نسخهی 7.۰.۰ از Undici کلاینت HTTP مدرن نود گنجانده شده است. این ارتقا پشتیبانی بهتر از استانداردهای جدید HTTP و بهبود عملکرد در استفاده از fetch()
یا درخواستهای پرتعداد HTTP را بههمراه دارد.
همچنین این نسخه با npm v11 عرضه میشود، که شامل بهبودهایی مانند:
- نصب سریعتر بستهها
- بررسیهای امنیتی پیشرفتهتر
- سازگاری بیشتر با اکوسیستمهای مدرن بستهها
برخی تغییرات مهم در npm 11 عبارتند از:
- نیازمندی جدید: node باید نسخه
^20.17.0
یا>=22.9.0
باشد - وجود یک prompt برای نوع پروژه هنگام اجرای
npm init
- حذف دستور
npm hook
- پرچم
--ignore-scripts
اکنون بر تمام lifecycle scripts (از جمله prepare) اثر میگذارد - در صورت شکست درخواست جمعی بررسی امنیتی (bulk advisory audit)، دیگر fallback به endpoint قدیمی انجام نمیشود
پاکسازیهای بهاری: موارد منسوخ و حذفشده در 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 | پشتیبانی از حافظه ۶۴ بیتی در برنامههای WASM | پشتیبانی نمیشد | اضافه شده |
بهبود در تسترانر داخلی | اجرای خودکار زیرتستها بدون نیاز به await دستی | محدود یا وجود نداشت | کامل و پیشرفته |
کلاینت HTTP با Undici 7.0.0 | عملکرد بهتر، سازگاری بیشتر با fetch() | نسخههای قدیمیتر | نسخه جدید و سریعتر |
npm نسخه ۱۱ | سرعت نصب بیشتر، بهبود امنیت و سازگاری پروژهها | نسخههای پایینتر | نسخه ۱۱ بهصورت پیشفرض |
حذف APIهای منسوخ | حذف تدریجی url.parse ، domain ، SlowBuffer و… | هنوز در دسترس | در حال حذف تدریجی |
سوالات متداول
در ادامه به سوالاتی که امکان دارد در این زمینه برای شما بدون پاسخ بماند، جوابهای کوتاه اما مفیدی دادهایم که با استفاده از آن میتوانید به سوال خود پاسخ صحیحی را بدهید.
آیا برای استفاده از Node.js 24 باید تغییر خاصی در پروژهام ایجاد کنم؟
در بیشتر موارد، پروژههایی که با نسخههای اخیر Node.js (مثلاً ۲۰ یا ۱۸) سازگار بودهاند، بدون تغییر خاصی روی نسخه ۲۴ اجرا میشوند. اما اگر از APIهای منسوخ یا بستههای ناسازگار استفاده کرده باشید، ممکن است نیاز به بهروزرسانی کد یا وابستگیها باشد.
مدل جدید مجوزدهی (Permission Model) چه کاربردی دارد؟
مدل مجوزدهی به شما امکان میدهد دسترسیهای برنامه Node.js خود را محدود کنید—for example، جلوگیری از دسترسی ناخواسته به فایلسیستم یا اینترنت. این ویژگی برای افزایش امنیت در محیطهای production یا تست بسیار مفید است.
تفاوت Node.js 24 با نسخه LTS قبلی (Node.js 20) در چیست؟
نسخه 24 شامل ویژگیهای جدیدی مانند پشتیبانی کامل از await using
، ارتقای V8 به نسخه 13.6، و مدل مجوزدهی پایدار است. همچنین برخی APIهای منسوخ در این نسخه حذف یا غیرفعال شدهاند.
معرفی هاست NestJS رایگان
هاست NestJS رایگان
آیا میتوانم همچنان از npm نسخه قدیمیتر در Node.js 24 استفاده کنم؟
بله، اما پیشنهاد میشود از npm نسخه ۱۱ که بهصورت پیشفرض همراه 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 تنها یک بهروزرسانی عددی نیست؛ بلکه گامی بزرگ بهسوی بهبود عملکرد، امنیت، و تجربه توسعهدهنده است. این نسخه ابزارهایی واقعی و کاربردی برای سادهسازی توسعه، افزایش بهرهوری و همگامسازی بهتر با آیندهی جاوااسکریپت فراهم میکند.