Node.js چیست و چه کاربردی دارد ؟

دسته بندی: جاوا اسکریپت
سطح مقاله: ساده
زمان مطالعه: 7 دقیقه
۲۰ مهر ۱۳۹۸

امروزه جاوا اسکریپت در جاهای مختلف حضور دارد و کارهای متنوعی با آن انجام می شود. هرچند جاوا اسکریپت را کنار HTML و CSS هسته وب می دانند اما از این زبان سطح بالا و مفسری به جزء وب در ساخت اپلیکیشن های موبایل، بازی های رایانه ای، برنامه های دسکتاپ و غیره نیز استفاده می شود. از مدت ها قبل یکی از آرزوهای برنامه نویسان جاوا اسکریپت این بود که بتوانند کدهای خود را به جز مرورگر کاربر در سمت سرور هم اجرا کنند. یعنی به کمک جاوا اسکریپت بتوانند ظاهر و منطق سرویس تحت وب خود را در کنار هم ایجاد کنند و دیگر برای برنامه نویسی سمت سرور سراغ زبان هایی مثل PHP یا Ruby نروند. یکی از محیط های هایی که به برنامه نویسان اجازه می دهد کدهای جاوا اسکریپت خود را سمت سرور اجرا کنند، Node.js می باشد. در این آموزش بررسی می کنیم که Node.js چیست و چه کاربردهایی دارد.

فهرست محتوای این مقاله

Node.js چیست ؟

Node.js یک پلتفرم سمت سرور مبتنی بر موتور جاوا اسکریپت گوگل کروم (V8 Engine) می باشد. Node.JS تمام چیزهایی که برای اجرای یک برنامه نوشته شده به زبان جاوا اسکریپت را نیاز دارید برایتان فراهم می کند. آقای Ryan Dahl در سال 2009 Node.JS را معرفی کرد تا نشان دهد جاوا اسکریپت قدرتمند تر از این حرف ها است که فقط برای پویاسازی صفحات وب در فرانت اند استفاده شود. در واقع به کمک Node.js زبان برنامه نویسی جاوا اسکریپ به جای اجرا درمرورگر در محیط سرور اجرا می شود. Node.js به شما اجازه می دهد به آسانی و سادگی برنامه های تحت شبکه مقیاس پذیر و بزرگ بنویسید.

جاوا اسکریپت از سال 1995 در حال پیشرفت بود. هر چند این زبان تا مدت ها قبل حضور موفقی در سمت سرور نداشت و و تلاش هایی که توسط برنامه نویسان انجام شده بود، به مرور زمان از ذهن توسعه دهندگان دیگر محو می شد. تا اینکه با معرفی نود جی اس در سال 2009 مهره برگشت و به مرور زمان جاوا اسکریپت بیشتر و بیشتر در سمت سرور مورد استفاده قرار گرفت.

Node.js فریم ورک نیست

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

فریم ورک های زیادی با زبان جاوا اسکریپت طراحی شده اند و در بخش های مختلف مورد استفاده قرار می گیرند. برخی از فریم ورک های معروف جاوا اسکریپت عبارتند از: Angular، React، Meteor.js، Vue.js و غیره. استفاده از این فریم ورک ها تا حد زیادی کارایی و امنیت محصول ما را بالا برده و درمقابل هزینه ها را هم کاهش می دهد.

پس دقت داشته باشید که Node.js فریم ورک نبوده و تعریف دقیق آن "محیط اجرایی" یا "run-time environment" می باشد. در واقع نود جی اس کمی فراتر از فریم ورک رفته و دامنه کاربردهای آن کمی بیشتر از فریم ورک می باشد. Node.js محدود به برنامه های تحت وب نبوده و می توان از آن در ساخت میکروکنترلر ها، Rest APIها، بسته‌های سیستم عامل، رباتیک و حتی در مراحل پیشرفته در ساخت برنامه برای هواپیمای بدون سرنشین نیز استفاده کرد.

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

Node.js چیست ؟

Node.js بازدهی و انعطاف بالایی دارد

نود در کنار V8 engine از زبان برنامه نویسی C++ استفاده کرده و سرعت بسیار بالایی دارد. هم V8 هم Node.js به صورت مرتب آپدیت شده و با قابلیت های جدید جاوا اسکریپت هماهنگ می شوند، همینطور بازدهی آنها بالاتر رفته و مشکلات امنیتی آنها نیز برطرف می شود. همینطور به دلیل استفاده از زبان جاوا اسکریپت انتقال فایل JSON (متداول‌ترین قالب انتقال داده در وب) به طور پیش فرض بسیار سریع خواهد بود.

Node.js کراس پلتفرم است

پلتفرم هایی مثل Electron.js یا NW.js به شما اجازه می دهند با نود جی اس برنامه های دسکتاپ بسازید. به این ترتیب می توانید برخی از کدهای برنامه تحت وب خود را در محیط ویندوز، لینوکس و مک اواس استفاده کنید. در واقع به کمک نود جی اس، همان تیمی که روی نسخه وب محصول کار می کنند، بدون نیاز به دانش تخصصی در زبان های C# یا Objective C یا سایر زبان هایی که برای ساخت برنامه های Native به کار می روند، می توانند یک برنامه دسکتاپ بسازند.

Node.js می تواند با میکروسرویس ها ترکیب شود

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

Node.js چه کاربردهایی دارد؟

ساخت برنامه های تک صفحه ای (SPA)

SPA مخفف single-page app بوده و برنامه هایی گفته می شود که تمام بخش های آن در یک صفحه پیاده سازی می شود. از SPA بیشتر برای ساخت شبکه های اجتماعی، سرویس های ایمیل، سایت های اشتراک ویدئو و غیره استفاده می شود. یکی از معروف ترین سایت هایی که به این شکل ساخته شده است، سرویس اشتراک ویدئو یوتیوب است. از آنجایی که نود جی اس از برنامه نویسی نامتقارن یا asynchronous به خوبی پشتیبانی می کند، برای ساخت برنامه های SPA انتخاب خوبی به حساب می آید.

ساخت برنامه های RTA

RTA مخفف real-time app می باشد. یعنی برنامه هایی که به صورت لحظه ای دارای تغییرات مختلفی هستند. به احتمال زیاد قبلا با این نوع برنامه ها کار کرده اید. برای مثال Google Sheets، Spreadsheets یا Slack از این دست برنامه ها هستند. در کل برنامه های تعاملی، ابزارهای مدیریت پروژه، کنفرانس های ویدئویی و صوتی و سایر برنامه های RTA عملیات های سنگین ورودی/خروجی انجام می دهند.

ساخت چت روم

یکی از معروف ترین نمونه های برنامه RTA چت روم ها و پیام رسان ها هستند. احتمالا روزانه از پیام رسان و چت روم های مختلف استفاده می کنید و دوست دارید یک چت روم برای خودتان بسازید. در واقع نود جی اس یک انتخاب عالی برای این کار است. اگر قصد ساخت چنین محصولی را دارید، باید به موارد مختلفی مثل تحمل ترافیک زیاد کاربران، سبک بودن محصول، سرعت بالای ارسال پیام ها وغیره توجه داشته باشید. تمام این موارد به کمک نود جی اس و یک فریم ورک جاوا اسکریپت مثل Express.js در سمت سرور قابل پیاده سازی است.

ساخت بازی های آنلاین تحت مرورگر وب

ایده ساخت چت روم جذاب است، اما جذابیت آن زمانی بیشتر می شود که یک بازی هم برای مرورگر وب بنویسید و کنار آن بازی یک چت روم هم ارائه کنید. به کمک نود جی اس می توان به توسعه بازی تحت وب پرداخت. در واقع با ترکیب تکنولوژی های HTML5 و ابزارهای جاوا اسکریپت ( مثل Express.js یا Socket.io یا غیره ) می توانید بازی های دوبعدی جذابی مثل Ancient Beast یا PaintWar بسازید.

جمع بندی

وقتی از برنامه نویسی سمت سرور صحبت می کنیم، احتمالا اولین چیزی که به ذهنتان می رسد PHP است، بعد هم احتمالا ذهنتان به سمت مایکروسافت و تکنولوژی ASP.Net می رود. اما جاوا اسکریپت هم با معرفی نود جی اس و امکانات قابل قبول در حوزه برنامه نویسی سمت سرور هم ورود کرد. نود جی اس یک محیط اجرایی رایگان برای زبان جاوا اسکریپت است که کارهای متنوعی انجام می دهد. نود جی اس رایگان است، یک جامعه بزرگ از برنامه نویسان پشت آن قرار دارند و یک پکیج منیجر بسیار قدرتمند به نام NPM یا Node Package Manager برای آن ساخته شده که نزدیک به نیم میلیون پکیج در آن قرار دارد. هر چقدر بیشتر با این پلتفرم کار کنید این سوال برایتان به وجود می آید که چرا زودتر سراغ نود جی اس نرفتم. اگر تجربه ای از کار با نود جی است دارید خوشحال می شویم با ما و کاربران سون لرن به اشتراک بگذارید.

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

نظرات کاربران

سهیل بشردوست

درود، امیدوارم آموزشش بصورت مجازی بزودی در سایت در دسترس باشه برای خرید

محمد انوری

درود سهیل جان … امیدوارم این اتفاق بیفته به زودی …

ارسال دیدگاه
خوشحال میشیم دیدگاه و یا تجربیات خودتون رو با ما در میون بذارید :

 
گزارش مشکل