معرفی Node.js

سه شنبه 13 بهمن 1394

Node.js پلتفرمی بر مبنای موتور جاوا اسکریپت کروم است که به منظور ایجاد برنامه های سریع و توسعه پذیر به وجود آمده است. Node.js از مدل رویدادگرا و non-blocking برای انجام عملیات I/O استفاده می کند. از این‌رو Node.js یک پلتفرم سبک و کارآمد برای پیاده سازی برنامه های Real-time و مبتنی بر داده است که می توانند به راحتی در سرورهای نامتمرکز اجرا شوند.

معرفی Node.js

Node.js چیست؟ ایا یک زبان است؟ آیا یک فریم ورک جدید است؟ خیر Node.JS یک مترجم کد جاوا اسکریپت است که روی سرور قرار می گیرد و بسیار سریع و انعطاف پذیر است. آیا می توان کد جاوا اسکریپت را روی سرور داشته باشیم؟ بله می توانیم، به روش مشابه که شما در front-end از جاوا اسکریپت استفاده می کنید همچنین می توانید back-end را نیز توسعه دهید. البته در سرور نمی توانید المان های HTML را مدیریت کنید. با Node.JS می توانید تمام کارهایی که C# انجام می دهد را انجام دهید. اما می توانید تصور کنید که این کار را توسط JavaScript انجام دهید؟

در صورتی که به یادگیری اصولی و حرفه ای این تکنولوژی قدرتمند علاقمند هستید میتوانید دوره کامل و جامع آموزش Node Js موجود در سایت تاپ لرن را مشاهده کنید .

بسیاری از مردم فکر می کنند که Node.js مانند IIS و Apacheفقط برای وب می باشد. در IIS یا Apache بعد از نصب آنها، شما یک صفحه آماده و در دسترس دارید اما در حال حاضر این در Node.js متفاوت است. در Node.JS این شما هستید که وب سرور یا دیگر موارد مورد علاقه خود را ایجاد می کنید. تفاوت دیگر این است که سرورهای سنتی قوی تر ولی پیچیده تر هستند و بیشتر از ماشین استفاده می کنند. با Node.js می توانیم بگوییم که این عمل بسیار ساده است و در عین حال بسیار امن و سریع می باشد.

Node.js به صورت تک نخی (single-thread) و غیر مسدود شده(non-blocking) می باشد. اما سوالی که پیش می آید این است که چگونه می توان یک پلت فرم را به صورت تک نخی توسعه داد؟

خب قبل از هر چیز باید بدانیم که IIS یا Apache چگونه به صورت چند نخی کار می کنند و سپس می توانیم آنها را با Node.JS به صورت تک نخی مقایسه کنیم.

هر بار که یک درخواست به وب سرور می رسد که از نوع چند نخی است، برای همین، وب سرور یک نخ(Thread) برای مراقبت از این درخواست باز می کند. هر درخواست یک Thread را می گیرد. البته این تعداد Thread بی نهایت نیست. مخزنی از Thread ها وجود دارد و زمانی که همه آنها مشغول باشند نمی توان به در خواست جدیدی پاسخ داد. این Thread یک درخواست را از منبع دریافت می کند، برای مثال تعدادی حافظه در یک درخواست شرکت می کنند. اگر این درخواست یک روند I/O داشته باشد (پایگاه داده، فایل ها و غیره)، این Thread ها تا انتها به صورت مشغول باقی می مانند. پس از آن این درخواست آماده است که به کلاینت منتشر شود. سیستم های کوچک با این روش به خوبی کار می کنند اما در حال حاضر برای سیستم های بزرگ روش مناسبی نیست. زیرا بسیاری از منابع سرور استفاده شده و به طور معمول درخواست هایی در انتظار باقی می مانند.

در حال حاضر این الگو در Nod.JS تغییر کرده است، Nod.JS از رویداد جاوا اسکریپت استفاده کرده و شناخت آن برای Node.JS با جاوا اسکریپت آسان تر است زیرا این منبعی است که از مفهوم توابع callback  استفاده می کند. و به همین دلیل می توانیم بگوییم که هر چیزی در Nod.JS غیر همزمان است.

Nod.JS با یک Thread محدود شده برای دریافت درخواست های کلاینت آغاز می شود. زمانی که یک درخواست می رسد این درخواست در یک پشته به نام "رویداد صف" قرار گرفته است. مسئول گرفتن درخواست برای پردازش و برگرداندن پاسخ برای کلاینت "حلقه رویداد" نامیده می شود که قلب Nod.JS می باشد و به صورت تک نخی کار می کند.

با این حال اگر یک پردازش I/O وجود داشته باشد رویداد حلقه متوقف می شود و مخزن Thread های داخلی را صدا می زند این عمل در++C انجام می شود تا پردازش اجرا و برای رویداد حلقه برگردانده شود . اما تفاوت بزرگ آن است که حلقه رویداد برای برگرداندن مخزن نخ های داخلی صبر نمی کند. با این مفهوم Node.js نسبت به سرورهای وب فعلی به صورت IIS یا وب سرور، سریع تر عمل می کند.

نمودار زیر نحوه کارکرد Node.js را نشان می دهد.

برای نصب Node.js فرایند آن را به عنوان یک کاربر ویندوز آموزش می دهیم.

در ابتدا، ما باید به سایت Node.JS دسترسی داشته و آن را دانلود کنید. در حال حاضر ورژن جدید نود نسخه 4 بوده و حدود 10MB می باشد. نصب آن ساده می باشد.(برای آگاهی از مراحل نصب Node.js به این مقاله مراجعه کنید)

بعد از نصب یک دستور نود را به صورت زیر خواهید دید :

تغییر بزرگ دیگری که نود ایجاد می کند برای کسی که آن را با دات نت استفاده می کند بدون داشتن VS و با زدن کلید F5 می توان از سایت خود اجرا گرفت، در Node.js همه چیز با دستور انجام می شود.

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان
  • NodeJs
  • 2k بازدید
  • 1 تشکر

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید