نودجیاس یک پلتفرم اپنسورس رایگان ایجاد شده بر پایه موتور جاوااسکریپت V8 گوگل کروم است که امکان ایجاد اپلیکیشنهای server-side را به ما میدهد.
نودجیاس برای توسعه بکاند و فرانتاند اپلیکیشنهای تحتوب مورد استفاده قرار گرفته است.
یک از مزیتهای نودجیاس، امکان پاسخدهی همزمان به تعداد زیادی درخواست بدون کندی است که برای اپلیکیشنهای در مقیاس بزرگ ضروری است.
در هاست نود جی اس میتوانید پروژه را بر روی ورژنهای مختلف نودجیاس که وجود دارد راهاندازی کنید.
طبق آمار در سال 2023 ، nodejs پراستفادهترین تکنولوژی برنامهنویسی با سهم 42.65% در مقایسه با سایر تکنولوژیهای کدنویسی بوده است.
فریمورکهای نودجیاس
فریمورکها شامل ابزارها، کتابخانهها و تمیپلتهایی هستند که در محیط نودجیاس، امکان ساخت و راهاندازی سریع اپلیکیشنهای سمت سرور و سمت کاربر را فراهم میکنند.
از مهمترین فریمورکهای نودجیاس، expressjs,MEAN,MERN,meteor,sails,nest, socketio است که در پروژههای نودجیاس قابل استفاده است که در این پست به socketio ,MEAN,MERN, expressjs اشاره خواهیم داشت.
expressjs
یک فریمورک پراستفاده، کاربردی، کوچک و ساده برای توسعه بک اند پروژههای نودجیاس است که تحت لیسانس MIT به صورت رایگان منتشر و قایل استفاده است.
اکسپرس جی اس در ساخت اپلیکیشنهای RESTful APIs، اپلیکیشنهای تک صفحه ای Single-page applications (SPAs) و اپلیکیشنهای وب (Web applications) کاربرد دارد.
اکسپرس به دلیل داشتن مستندات قوی، دارای جامعه مصرف کنندگان و انجمن کاربران بزرگی است که در زمان بروز مشکل و رفع خطاها میتواند راهنما و کمک بسیار بزرگی باشد.
در اکسپرس جی اس، امکان استفاده از معماری Model-View-Controller (MVC) به صورت نامتقارن (asynchronous) مهیا شده است که میتواند در ایجاد اپلیکیشنها به ما کمک کند.
اکسپرس جی اس به ما در ایجاد صفحات HTML با محتوای پویا کمک میکند و باعث میشود بتوانیم صفحات مورد نظر خود را در وب اپلیکیشن خود آماده کنیم.
از مزایای اکسپرس جی اس پشتیبانی از موتورهای ساخت تمپلت (template engines) شامل Pug, EJS, و Handlebars میباشد.
در تصویر زیر، نحوه ورود و احراز هویت کاربران در زمان لاگین در اکسپرس جی اس نمایش داده شده است.
این فریمورک ترکیبی از 4 تکنولوژی شامل مونگودیبی، اکسپرس جی اس، آنگولار و نودجیاس است که برای راهاندازی اپلیکیشنهای وب پویا (dynamic web application) استفاده میشود.
واژه MEAN برگرفته از حروف نخست کلمات MongoDB, Express, AngularJS, NoedJS است.
انگولار (AngularJS) فریمورک اپلیکیشن وب که کدهای جاوااسکریپت را در مرورگر کاربر اجرامیکند .
وقتی که یک کاربر درخواستی را ارسال میکند، ابتدا توسط Angular پردازش میشود و وارد بخش دوم که NodeJS است میشود.
این یک محیط مجازی open-source، cross-platform جاوا اسکریپت است که کد را در سمت سرور اجرا میکند.
بعد از آن Request وارد قسمت سوم ExpressJs میشود که درخواست را به پایگاه داده MongoDB ارسال میکند.
پس از آن MongoDB دادهها را بازیابی میکند و پاسخ را به Express.Js ارسال میکند و سپس ExpressJs پاسخ دریافت شده را به NodeJS و سپس NodeJS آن را به AngularJS بازمیگرداند تا نتیجه را در مروگر کاربر نمایش دهد.
این فرایند کلی mean است که در اپلیکیشنها به کار میرود.
از مهمترین شرکتهایی که از MEAN استفاده میکنند میتوان از Accenture, Fiverr, UNIQLO, Sisense, Raindrop.io, Vungle, Onkore, AngularClass نام برد.
MERN
همانند MEAN، یک فریمورک فولاستک (full stack development framework) است که از در کنار هم قرار گرفتن 4 تکنولوژی MongoDB, Express, React, Node ایجاد شده است که برای اپلیکیشنهای وب و موبایل مورد استفاده قرار میگیرد.
تفاوت آن با MEAN در این است که در بخش فرانتاند به جای Angular از reactjs استفاده شده است.
ریاکت کتابخانهی جاوااسکریپت است که توسط فیسبوک ایجاد شده و به ما امکان میدهد رابطهای کاربری پویا و تعاملی را در وبسایتهای خود استفاده کنیم.
در وب مدرن، برنامههای تک صفحهای یا SPA ساخته شده با mern بسیار مورد توجه قرار گرفته است.
امروزه ما قادر به ایجاد وبسایتهایی هستیم که سورس وبسایت و یا اپلیکیشن را تنها یک بار از سرور فراخوانی میکنند بدون اینکه صفحه را رفرش کنیم، حتی در هنگام بازدید از صفحات دیگر نیازی به لود مجدد نیست و این باعث افزایش چشمگیر سرعت لود صفخات خواهد شد.
socketio
برای ایجاد ارتباط دو طرفه بلادرنگ و بدون تاخیر بین کلاینت و سرور ،برای استفاده در تمام پلتفرم ها ایجاد شده است (Bidirectional and low-latency communication for every platform)
برای اطلاعات بیشتر میتوانید مستندات socket.io را مشاهده کنید.
socketio برای راهاندازی چت های آنلاین دو و یا چند نفره مورد استفاده قرار میگیرد.
از سایر کاربردهای socketio میتوان از موارد زیر نام برد:
- – استریم آنلاین
- – بازی های چند نفره آنلاین
- – اپلیکیشن های GPS
- – و …
برای راهاندازی سوکت socketio روی پروژه باید پروژه را در قسمت nodejs application اجرا کنید و پورتی که سیستم به شما داده است به همراه دامنه و یا سابدامنه مربوط به پروژه از ناحیه کاربری ارسال کنید تا پورت مورد نظر برای شما فعال شود.
با استفاده از آموزش راهاندازی پروژه های نودجی اس، پروژه را راهاندازی کنید.
در صورت نیاز به راهنمایی و مشاره از پنل کاربری خود، تیکت ارسال کنید.