10 تیر

معرفی فریم ورک Node.js و کاربرد آن

node.js

 

Node.js چیست؟

Node.js یک پلتفرم کدنویسی سمت سرور است که بر پایه موتور جاوا اسکریپت مرورگر گوگل‌ کروم کدنویسی شده است. این پلتفرم توسط رایان داهل در سال ۲۰۰۹ ایجاد شده است و در حال حاضر آخرین نسخه آن ورژن 0.10.36 می‌باشد.

بر اساس اعلان مستندات رسمی تعریف 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 قبلی از مکانیزم ثبت رویداد استفاده می‌کند.

سرعت بالا: با توجه به این که نود جی اس بر پایه نسخه ۸ موتور جاوا اسکریپت گوگل کروم پیاده‌سازی شده است در اجرای کدها بسیار سریع عمل می‌کند.

تک موضوع اما بسیار مقیاس‌ پدیر: نود جی اس از یک مدل تک موضوعی به همراه حلقه رویددادها استفاده می‌کند. مکانیزم رویداد باعث می‌شود که سرور به صورت مسدود نشونده پاسخ‌ها را ارسال کند و همین امر باعث می‌شود بر خلاف مکانیزم‌های سنتی که سرور را محدود به چند درخواست برای پردازش درخواست‌ها می‌کرد سرور بسیار مقیایس‌پذیر شود.

نود جی اس از یک برنامه تک موضوعی استفاده می‌کند و همان برنامه می‌تواند سرویسی برای تعداد بسیار بیشتری از درخواست ها نسبت به مکانیزم های قدیمی سرور مثل HTTP سرور آپاچی فراهم کند.

عدم وجود بافرینگ: این پلتفرم هیچ داده‌ای را بافر نمی‌کند و داده‌های خروجی را به صورت تکه‌تکه منتشر می‌کند.

چه کسانی از Node.js استفاده می‌کنند؟

در زیر لینکی مربوط به گیت‌هاب وجود دارد که لیستی جامع از پروژه ها، نرم‌افزارها و شرکت‌هایی که از Node.js استفاده می‌کنند را مشخص کرده است. از جمله مهمترین اعضای این لیست می‌توان eBay, General Electric, GoDaddy, Microsoft, PayPal, Uber, Wikipins, Yahoo! و را نام برد.

https://github.com/nodejs/node-v0.x-archive/wiki/projects,-applications,-and-companies-using-node

نمودار زیر مهم‌ترین بخش‌های Node.js را به تصویر کشیده است:

node.js2

کجا از Node.js استفاده کنیم؟

در زیر برخی از موقعیت‌هایی که نود جی اس خودش را به عنوان یک پلتفرم کارا معرفی می‌کند آمده است:

نرم‌افزارهای محدوده I/O (ورودی و خروجی)

نرم‌افزارهای جریان داده‌ای (Data Streaing)

داده‌های نرم‌افزارهای بلادرنگ (Real-Time)

برنامه‌های مبتنی بر JASON API

برنامه‌های تک صفحه‌ای

کجا از Node.js استفاده نکنیم؟

استفاده از این پلتفرم در برنامه‌های متمرکز بر CPU توصیه نمی‌شود.

اشتراک

ارسال نظر