قبلا پیرامون اینکه کلاینت چیست مطلبی منتشر کردیم، اما امروز خواهیم پراخت به اینکه نود جی اس(Node.js) چیست و اینکه ارتباط آن با کلاینت در چه میباشد و چگونه میتوان آن را در لینوکس نصب و از آن استفاده کرد.
Nodejs محیلی سمت سرور میباشد که برای اجرای کدهای جاوا اسکریپت بسیار کاربردی است و لازم است بدانید که تا قبل از ارائه پلتفرم Nodejs نیز جاوا اسکریپت بعنوان یک زبان سمت کلاینت شناخته شده بود.
در حقیقت، Node.js در نتیجه تلاشهای دولوپرهای زبان جاوااسکریپت برای توسعه محیطی به وجود آمد که دولوپرها بتوانند کدهای جاوااسکریپت خود را علاوه بر داخل مرورگر، در سمت سرور نیز در قالب یک اپلیکیشن مستقل اجرا کنند.
طبق تعریفی که در سایت رسمی Node.js درج شده است:
nodejs یک محیط اجرای جاوا اسکریپتی است که روی موتور اجرای کد جاوااسکریپت مرورگر کروم تحت عنوان V8 ساخته شده است و هدف این پلتفرم این است که سرعت اجرای برنامه تحت وب یا شبکه را افزایش دهد و فشار زیاد سرور را در زمان های افزایش بازدید کم کند.
Node.js در سال ۲۰۰۹ معرفی شده است. پلتفرم Node.js محدود به هیچ مرورگری نیست و قابلیت اجراشدن در انواع سیستمعاملهای ویندوز، لینوکس و مک را داراست.
چرا باید از Node.js استفاده کنیم؟
نودجیاس در مقایسه با PHP و Ruby سریع تر و همچنین از امنیت بیشتر در مقابل بار اضافی اعمال شده به سرور برخوردار است، به خصوص در زمان وقوع حملههای DDOS که بقیه نرمافزارهای سرور مانند SSH قابل دسترسی و پاسخ دهنده باقی میمانند.
بیشترین موارد استفاده از نودجیاس مربوط به نوشتن API است، که باعث می شود توسعه دهنده های سمت کلاینت بتوانند به اطلاعات دسترسی داشته و از آنها استفاده کنند.
پایین بودن زمان پاسخگویی در Node.js : Node.js یک پلتفرم single-threaded و asynchronous است. هیچ کدام از پردازش های مرتبط با I/O سایر پردازش ها را متوقف نمیکند. این به معنای آن است که شما میتوانید در یک زمان هم از روی دیسک یک فایل را بخوانید هم یک ایمیل بفرستید و هم بر روی پایگاه داده Query بزنید.
بسیاری از وبسرورها بر مبنای تکنیک Threading کار میکنند یعنی برای هر درخواست (request)، یک thread ایجاد میکند و به تبع آن بخشی از رم (مثلا ۱ مگابایت) از RAM سرور اشغال میشود و این کار تا جایی که RAM سرور اجازه دهد ادامه مییابد. تکنیک Threading برای کارهایی که نیاز به تعداد بالایی کانکشن همزمان دارند، مناسب نیست.
اما در Node.js هر کدام از درخواست هاییکه به وب سرویس می رسند یک Process جدید Node.js ایجاد نمی کنند، بجای آن در اغلب اوقات فقط و فقط یک Process مربوط به Node.js در حال اجرا است که به ارتباطات و درخواستها گوش می دهد. کدهای جاوااسکریپت در Thread اصلی و عملکردهای مرتبط با I/O در Thread های دیگری اجرا میشوند.
ماشین مجازی (Google V8) در Node.js که کدهای جاوااسکریپت را اجرا می کند دارای ویژگی کامپایل در زمان اجرا می باشد. وقتی این ماشین مجازی کدهای جاوااسکریپت را میگیرد در زمان اجرا آنها را به کدهایی نزدیک به کدهای زبان ماشین کامپایل میکند، این کار باعث میشود توابعی که به دفعات صدا زده میشوند با تبدیل شدن به کدهای شبیه کد ماشین به طور قابل ملاحظهای سرعت اجرای کدها را بهبود دهد.
دلیل آخر استفاده از Node.js جامعه بزرگ برنامه نویسهای آن و وجود کتابخانههای open source زیاد آن است. در اغلب مواردی که شما نیاز خواهید داشت، کتابخانه از قبل تعریف شده ای وجود دارد که می توانید از آن استفاده کنید و نیاز نیست برای خیلی از اصول اولیه و مفاهیم پایهای خودتون کد نویسی کنید.
پاسخگوی تعداد زیادی کاربر و بسیار سریع
پایین بودن زمان پاسخگویی در Node.js
خطایابی بسیار ساده و سریع در این تکنولوژی
جامعه کاربری بزرگ
متن باز بودن
سازگاری با سیستم عامل های مختلف لینوکس، ویندوز، مک
پشتیبانی از Caching
nodejs هم معایب خاص خودش را دارد. سیستمهای نوشته شده با NodeJS شدیدا وابسته به برنامه نویس خود هستند چون بدلیل نداشتن یک کتابخانه استاندارد برای JavaScript از استانداردهای پراکندهای برای نوشتن سورس کدها استفاده میشود.
یک مشکل دیگر این است که هنوز nodejs نسبتا جدید است و در واقع هنوز مراحل ابتدایی خود را پشت سر می گذارد. Nodejs به آسانی در تمام پلتفرم ها موجود نیست و بیشتر هاست های اشتراکی از آن پشتیبانی نمی کنند و این موضوع در زمانیکه موضوع بودجه مطرح باشد، مشکل ایجاد می کند، اما به آسانی قابل راه اندازی روی سرور یا vps است .
در مجموع باید بگوییم Node.js در آیندهای نه چندان دور به یکی از زبانهای مهم توسعه کسبوکار تبدیل خواهد شد.
بانک اطلاعاتی node js
MongoDB محبوبترین انتخاب در بین توسعهدهندگان مختلف نودجیاس است، اما به نظر میرسد که جایگاه دوم از آن بانکهای اطلاعاتی Redis، PostgreSQL و MySQL باشد.
راهکار اول :
همیشه آخرین نسخه stable را از طریق لینک زیر دانلود کنید.
1 | https://nodejs.org/dist/ |
در دستورات نصب نیز با توجه به نسخه دانلود شده، نسخه جدید را جایگزین v10.8.0 در دستورات زیر نمائید.
جهت نصب دستورات زیر را به ترتیب در سرور اجرا نمایید:
1 2 3 4 5 6 7 8 9 | wget https://nodejs.org/dist/v10.8.0/node-v10.8.0.tar.gz tar zxvf node-v10.8.0.tar.gz cd node-v10.8.0 ./configure make ; make install |
حال جهت اطمینان از صحت نصب دستور زیر را درج کنید:
1 | node -v |
درصورتیکه نصب بدون مشکل انجام شده باشد در خروجی شماره نسخه نصب شده را مشاهده خواهید نمود.
راهکار دوم – نصب Nodejs و NPM در CentOS
جهت نصب دستورات زیر را اجرا کنید:
1 2 | yum install -y gcc-c++ make curl--silent --location https://rpm.nodesource.com/setup_10.x|sudobash- |
توجه داشته باشید بجای عدد ۱۰ در دستور بالا همیشه آخرین نسخه stable را ازاینجامشاهده و جایگزین نمائید.
سپس دستور زیر را اجرا کنید:
1 | yum –y installnodejs |
حال جهت اطمینان از صحت نصب دستور زیر را درج کنید:
1 | node -v |
و برای اطمینان از نصب NPM نیز دستور زیر را درج کنید:
1 | npm –v |
درصورتیکه نصب بدون مشکل انجام شده باشد در خروجی شماره نسخه نصب شده را مشاهده خواهید نمود.