نقل قول نوشته شده توسط plague مشاهده تاپیک
سلام

سعی میکنم ساده توضیح بدم

نود تک نخی هستش اصطلاحا (thread) و همه کلاینت ها رو همون تک thread اجرا میشن
بر خلاف زبان های دیگه مثل php,asp که به ازای هر کلاینت یه thread جدید ایجاد میشه

نتیجه اینکه یه کلاینت به مشکل بر بخوره در هنگام یه عملیات میتونه کل سرور رو مختل کنه و بقیه کلاینت ها رو با مشکل رو هم با مشکل مواجه کنه
ولی در زبان های دیگه هرکسی دچار مشکل بشه برای خودش شده و تاثیری رو کار بقیه نداره

اما دلیل اینکه تک نخی اجرا میشه نود اینه که این شیوه باعث میشه پرفرمنس بهتری داشته باشه توی پروسس های async
پروسس های async چیزیه که نود براش ساخته شده
اینا اومدن یه thread ها رو قربانی کردن تا اتو این زمینه بازدهی بهتری داشته باشن
به عبارت دیگه نود رو برای منظور خاصی ساختن که همون نکته اه که بالا بهش اشاره کردم
برای یک سری کار ها خیلی خوبه برای یک سری توصیه نمیشه

اون mongodb که بخش دیگری از پاسخ شما بودهم مناسب برای دیتبایس رابطه ای نیست و برای نوع خاصی از دیتبایس ساخته شده

در کل این ابزار ها برای نوع خاصی استفاده و برای حل مشکلات خاصی بوجود اومدن
چشم بسته نباید نظر داد و استفاده کرد

درباره Thread باید بگم که ۱۰۰٪ پروژه‌های کاربردی نیاز به ابزار خاصی برای اجرا دارن. مثل همون PHP که برای اجرای بی نقص و درست به وب‌سروری مثل آپاچی یا nginx داره. حالا تو NodeJs هم برای مدیریت بهتر thread و process از ابزار یا کتابخونه‌هایی مثل PM2 استفاده میشه.

درباره این‌که از NodeJs کجا استفاده بشه بهتره هم باید بگم که معمولا از Node در Api هایی استفاده میشه که قراره کلی کلاینت با کلی process سنگین با اون ارتباط برقرار کنن. مثل یه Multiplayer Game Server. از دیگر امکاناتی که NodeJs نسبت به PHP داره ارتباط نزدیک با سخت افزاره که اجازه میده مثلا سوکت TCP/IP ساخت در صورتی که در PHP چنین چیزی نداریم.

پس اگه قراره یه سایت ساده و بدون process های سنگین یا تعداد کلاینت کم داشته باشید، NodeJs گزینه اشتباهیه و کلی هزینه اضافه رو دستتون میزاره.