این یک ترفند کوچک است، اما حالت تماشا به روند توسعه شما راحتی می بخشد.
در اکتبر 2022، Node.js نوزدهمین نسخه خود را منتشر کرد. شش ماه پس از انتشار Node.js v.18، که دارای ارتقاء قابل توجهی مانند ماژول تست runner بومی بود.
یک ویژگی قابل توجه در Node.js 19 حالت جدید و آزمایشی ساعت است. این به شما این امکان را می دهد که بدون نیاز به راه اندازی مجدد سرور، تغییراتی در سرور خود ایجاد کنید.
قبل از Node.js 19، حالت تماشا فقط با استفاده از کتابخانه های شخص ثالث امکان پذیر بود. نحوه استفاده از حالت تماشا و بررسی سایر به روز رسانی های Node.js در نسخه 19 را بیاموزید.
حالت تماشای جدید Node
Node.js 19 پرچم آزمایشی –watch را معرفی می کند، که سرور Node.js را هنگامی که تغییرات در فایل مشخص شده را شناسایی می کند، مجددا راه اندازی می کند. قبلاً میتوانستید این کار را با استفاده از یک کتابخانه شخص ثالث به نام nodemon انجام دهید، اما بهروزرسانی با افزودن عملکرد آن به Node.js نیاز به وابستگی را برطرف میکند.
برای راهاندازی مجدد سرور Node.js با استفاده از پرچم –watch، دستور node را با پرچم –watch و به دنبال آن نام فایلی که میخواهید هنگامی که Node تغییرات را شناسایی کرد، راهاندازی مجدد کنید، اجرا کنید.
به عنوان مثال، این بلوک کد را به عنوان یک فایل server.js در نظر بگیرید:
// server.js
const express = require("express");
const app = express();
const PORT = 6060;
app.listen(PORT, () => console.log(`App listening on port: ${PORT}`));
برای مشاهده این فایل برای مشاهده تغییرات و راه اندازی مجدد سرور در صورت وقوع، این دستور را در ترمینال خود اجرا کنید:
node --watch server
این فرمان فایل server.js شما را تماشا می کند و سرور Node.js را هنگامی که تغییرات ایجاد شده در فایل را شناسایی می کند، مجددا راه اندازی می کند.
شایان ذکر است که این ویژگی هنوز آزمایشی است، به این معنی که ممکن است هنگام استفاده از پرچم –watch برای راه اندازی مجدد سرور خود با مشکلاتی مواجه شوید.
سایر ارتقاء و رفع
سایر بهبودها و اصلاحات ارائه شده با Node.js 19 شامل موارد زیر است.
HTTP Keep-Alive به صورت پیش فرض
گزینه keepAlive ماژول http/https کنترل می کند که آیا باید اتصال به سرور را پس از تکمیل درخواست حفظ کند یا خیر. در اصل، شما باید به صورت دستی گزینه keepAlive را روی true تنظیم کنید. این گزینه به سرور دستور می دهد تا اتصال را باز نگه دارد و برای درخواست های بعدی مجدداً از آن استفاده کند.
در Node.js 19، گزینه keepAlive به طور پیش فرض روی true تنظیم شده است. این اضافه به طور قابل توجهی هزینه سربار برقراری اتصالات جدید را کاهش می دهد.
تثبیت API WebCrypto
WebCrypto API اجرای Node.js از استاندارد Web Crypto API است. با Node.js 19، پیاده سازی WebCrypto اکنون پایدار است، به جز الگوریتم های Ed25519، Ed448، X25519 و X448.
میتوانید با استفاده از ماژول globalThis یا پیشوند node: که Node.js 18 برای متمایز کردن ماژولهای اصلی Node.js از کتابخانههای شخص ثالث معرفی کرد، به این API دسترسی پیدا کنید.
مثلا:
// node: prefix
const crypto = require("node:crypto");
// globalThis
const webcrypt = globalThis.crypto;
تنظیمات سفارشی وضوح ESM
Node.js 19 پرچم تجربی قبلی –experimental-specifier-resolution را حذف می کند. این پشتیبانی آزمایشی برای مکان یابی فایل ها با استفاده از مشخص کننده های بسته، مشابه نحوه وارد کردن ماژول ها توسط ECMAScript فراهم می کند.
Node.js این پرچم را حذف کرد زیرا می توانید عملکرد آن را با استفاده از بارگذارهای سفارشی تکرار کنید. میتوانید از لودرهای سفارشی برای پشتیبانی از فرمتهای بیشتر ماژول یا پردازش بیشتر ماژولها قبل از بارگیری استفاده کنید، زیرا به شما امکان میدهند منطق منحصر به فرد خود را برای بارگیری و پردازش ماژولها ارائه دهید.
حذف پشتیبانی DTrace/SystemTap/ETW
DTrace، SystemTap و ETW (ردیابی رویداد برای ویندوز) ماژول هایی هستند که ردیابی پویا و تجزیه و تحلیل برنامه های در حال اجرا را ارائه می دهند. در اصل در Node.js، میتوانید از آنها برای جمعآوری دادههای مربوط به فعالیت یک برنامه، از جمله شاخصهای عملکرد، خطاها و سایر رویدادهای احتمالی زمان اجرا استفاده کنید.
در Node.js 19، Node.js پشتیبانی از DTrace، SystemTap و ETW را حذف کرد زیرا پیچیدگی مربوط به نگهداری و به روز نگه داشتن این ماژول ها هنوز ارزشش را ندارد. بنابراین، برای اولویت بندی منابع خود، حمایت از آنها را کنار گذاشتند.
ارتقا به Node.js 19
Node.js 19 ویژگیها و پیشرفتهای مختلفی را معرفی میکند که ارزش آن را برای برنامه شما در نظر میگیرد، از جمله حالت تماشای جدید، از جمله مواردی که در بالا مورد بحث قرار گرفت. برای ارتقاء به Node.js 19، به وب سایت رسمی بروید و نسخه فعلی را دانلود کنید.