Node.js چیست؟
Node.js یک پلتفرم کدنویسی سمت سرور است که بر پایه موتور جاوا اسکریپت مرورگر گوگل کروم کدنویسی شده است. این پلتفرم توسط رایان داهل در سال ۲۰۰۹ ایجاد شده است و در حال حاضر آخرین نسخه آن ورژن ۰٫۱۰٫۳۶ میباشد.
بر اساس اعلان مستندات رسمی تعریف Node.Js به شکل زیر عنوان میشود:
“Node.js یک پلتفرم ایجاد شده بر پایه موتور جاوا اسکریپت گوگل کروم است که باعث سهولت ایجاد و مقیاسپذیری برنامههای تحت شبکه میشود. این پلتفرم از یک مدل I/O رویداد محور استفاده میکند که مسدود نشونده (non-blocking) است و همین امر باعث کاهش فشار موجود بر روی سرور و افزایش کارآیی میشود و این امر برای اجرای برنامههای مبتنی بر داده که بصورت بلادرنگ (Real-Time) بر روی سرورهای نامتمرکز استفاده میشوند بسیار مناسب است.”
Node.js یک پلتفرم کد باز برای گسترش برنامههای سمت سرور و تحت شبکه میباشد. این پلتفرم بر اساس زبان جاوا اسکریپت نوشته شده است و قابلیت پیادهسازی بر روی سیستمعاملهای ویندوز، لینوکس و سیستم عامل کامپیوترهای اپل را دارد.
این فریم ورک کتابخانهای عظیم از ماژولهای مختلف جاوا اسکریپت را فراهم میکند که سهولت در گسترش وباپلیکیشن ها را تا حد زیادی فراهم میآورد.
ویژگیهای Node.JS
در زیر برخی از مهمترین ویژگیهای این پلتفرم که باعث میشود انتخاب اول برنامهنویسها باشد ذکر شده است:
غیرهمزمانی و رویداد محوری: همهی API های کتابخانه Node.js غیرهمزمان میباشند که همین امر باعث مسدودناپذیری(non-blocking) آن میشود. این بدان معناست که که Node.js در بستر سرور هیچگاه در انتظار بازگشت اطلاعات از APIنمیماند. سرور پس از صدا زدن یک API به سمت API بعدی حرکت میکند و برای اطلاع از وضعیت API قبلی از مکانیزم ثبت رویداد استفاده میکند.
نود جی اس در طراحی تحت تأثیر و بسیار شبیه سیستمهایی نظیر Event Machine رابی و یا Twisted پایتون (Python) است. نود جی اس مدل رویدادگرا را کمی جلوتر میبرد. سرعت بالا: با توجه به این که نود جی اس بر پایه نسخه ۸ موتور جاوا اسکریپت گوگل کروم پیادهسازی شده است در اجرای کدها بسیار سریع عمل میکند.
تک موضوع اما بسیار مقیاس پدیر: نود جی اس از یک مدل تک موضوعی به همراه حلقه رویددادها استفاده میکند. مکانیزم رویداد باعث میشود که سرور به صورت مسدود نشونده پاسخها را ارسال کند و همین امر باعث میشود بر خلاف مکانیزمهای سنتی که سرور را محدود به چند درخواست برای پردازش درخواستها میکرد سرور بسیار مقیایسپذیر شود.
نود جی اس از یک برنامه تک موضوعی استفاده میکند و همان برنامه میتواند سرویسی برای تعداد بسیار بیشتری از درخواست ها نسبت به مکانیزم های قدیمی سرور مثل HTTP سرور آپاچی فراهم کند.
عدم وجود بافرینگ: این پلتفرم هیچ دادهای را بافر نمیکند و دادههای خروجی را به صورت تکه تکه منتشر میکند.
ولی جالب اینجاست که تمام اینها در نود جی اس تغییر کرده است، بخاطر اینکه تمام ساختار هسته سرور توسط برنامه نویس هندل می شود، که باعث می شود ساخت برنامه های کاربردی وب آسان شود.