80
تشکر

Node.js چیست؟ – بخش اول

Node.js

Node.js

Node در واقع یک مفسر جاوا اسکریپت تحت سرور است که مفهوم نحوه کار کردن یک سرور تغییر میدهد. در واقع هدف قادر ساختن برنامه نویس برای ساخت اپلیکیشن های بسیار مقیاس پذیر و نوشتن کدهایی با ده ها هزار اتصالات هم زمان در فقط یک ماشین مجازی است.

یکی از اهداف Node “ارائه دادن راهی آسان برای ساخت برنامه های مقیاس پذیر” است. اما مشکل برنامه های سرور فعلی چیست؟

بیاید محاسبه کنیم. در یک زبان مانند Java و PHP هر اتصال کاربر باعث بوجود آمدن یک thread میشود که حدود 2 مگابایت حافظه را اشغال میکند. حال در یک سیستمی با 8 گیگابایت RAM به طور میانگین بیشترین تعداد اتصالات هم زمان 4000 کاربر است.

اگر شما خواسته باشید که تعداد اتصالات هم زمان را افزایش دهید خوب طبیعتا باید به سرورهای خود اضافه کنید. که این اضافه کردن باعث بوجود آمدن هزینه های بیشتر مانند هزینه های سرور, هزینه های ترافیک, هزینه های نیروی کار و … میشود.

ادامه مطلب را از دست ندهید.

به خاطر همین دلایل معماری وب در تنگنایی وجود دارد که آن هم حداکثر تعداد اتصالات هم زمان است.

Node این مشکل را بوسیله تغییر نحوه یک اتصال به سرور حل میکند. به این صورت که هر اتصال به صورت یک رویداد درون موتور پردازشی Node اجرا میشود. Node ادعا میکند که هیچ وقت به بن بست نمیرسد و میتواند تا ده ها هزار اتصال همزمان را پشتیبانی کند.

بنابراین اگر شما میخواهید برنامه ای بنویسید که هزاران اتصال هم زمان را پشتیبانی کند, چگونه باید با Node کار کنید؟ اما قبل از پاسخ به این سوال بیایید ببینیم که Node چگونه کار میکند؟

Node یک برنامه تحت سرور است. Node قطعا مثل Apache یا Tomcat نیست. این سرورها اساسا سرورهای آماده نصب هستند و میتوانند ماژول هایی را بپذیرند. مانند Apache که ماژول PHP را میتواند اجرا کند و به توسعه دهندگان وب این اجازه را بدهد که اپلیکیشن های داینامیک بسازند و از طریق ماژول SSL برای امن کردن اتصالات آن استفاده کنند.

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

Node چگونه کار میکند؟

Node خودش بر روی موتور V8 JavaScript اجرا میشود. صبر کنید!!!… چی؟؟

جاوا اسکریپت بر روی سرور؟ بله. شما درست خواندید. جاوا اسکریپت بر روی سرور ممکن است مفهوم جدیدی برای کسانی که با این زبان در سمت کلاینت کار کرده اند باشد. چرا از همان زبانی که در سمت کلاینت از آن استفاده میکنیم در سمت سرور استفاده نکنیم؟

V8 چیست؟ V8 موتور جاوا اسکریپت گوگل بر روی مروگر کروم است. یک موتور جاوا اسکریپت کدهای جاوا اسکریپت را پردازش میکند و آنها را اجرا میکند. با استفاده از V8, گوگل یک مفسر فوق العاده سریع توسط ++C نوشته است همراه با یک جنبه منحصر بفرد: شما میتوانید V8 را دانلود و در هر برنامه که میخواهید جاوا اسکریپت در آن اجرا شود قرار دهید. دیگر به یک مرورگر محدود نمیشود.

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

در بخش دوم این مطلب در آینده همراه ما باشید تا اطلاعات بیشتری کسب کنیم.

مطالب مرتبط

Node.js چیست؟ بخش دوم

  • معین امیدی می‌گه:

    عالیه مرسی داداش منابع برنامه نویسی فارسی بسیار کمن ممنون که کمک میکنید

  • با سلام و خسته نباشید
    مطلب جالبی بود. یه سوال اساسی
    من خیلی دنبال این گشتم که بفهمم چطوری میشه روی Share Host Cpanel این برنامه رو نصب کرد. هیچ میزبانی به شما دسترسی SSH نمیده! پس چطوری اینو نصب کنیم؟؟

  • مهشاد می‌گه:

    یعنی اگه از node استفاده کنیم دیگه خیالمون راحته که کاربر اگر جاوااسکریپتشو غیر فعال کنه هیچ اتفاقی نمی افته؟ یعنی دیگه حتی اگر جاوااسکریپتشو غیر فعال کنه باز هم جاوااسکریپت براش اجرا میشه؟

  • نازیلا این وب سایت از جاوا اسکریپ (جی کوئری) برای ایجاد افکتها استفاده کردن- فلش نیست

  • نازیلا می‌گه:

    با سلام و سپاس فراوان
    لطفا ازتان خواهش دارم سایت http://amir-azimi.com را نگاه کنید به من بگید از چه استفاده کردند که خط ها شروع به حرکت در می آیند؟
    با تشکر

    • محمود می‌گه:

      فکر نمیکنم این سایت فلش استفاده کرده باشه،
      با استفاده از جاوااسکریپت این جلوه ها رو ایجاد میکنه
      برای بررسی میتونی فلش مرورگر را غیر فعال کنی

    • Mad Fara می‌گه:

      دوست عزیز از جی کوئری استفاده شده
      اون خطوط به صورت عکس میباشد و یک دایو همرنگ بک وب سایت روی آن قرار دارد
      دایو به صورت اسلاید دون بالا رفته و خطوط مشخص می شود .
      ممنون به خاطره سوالت آنالیز کردن سایتش جالب بود.

  • ریحا می‌گه:

    خسته نباشین …
    ممنون بابت پست ، شدیدن منتظر بعدیش هستم …
    یاعلی .


  • نظرات این مطلب بسته است.