# زبان های اسکریپتی > JavaScript و Framework های مبتنی بر آن > Node.js >  آیا میشه Nodejs رو بطور کامل جایگزین php کرد؟

## K1-Aria

با سلام خدمت دوستان عزیز<br><br>از وقتی با nodejs و قابلیت سمت سرور بودن اون آشنا شدم و یکی از دوستان خیلی زیاد ازش تعریف کرد یه سوال واسم پیش اومد ، در اصل دو سوال<br><br>1- آیا میشه بطور کاااامل با php جایگزین بشه؟ &nbsp;یعنی از عملیات ساده گرفته تا ارتباط با بانک و حذف و درج و اعتبار سنجی و ...<br><br>2- و سوال دوم اینکه آیا اصلا نیاز به همچین کاری هست؟؟؟ آیا بهتر هست که جایگزین بشه؟؟<br>متشکر

----------


## plague

بسته به نوع پروژه داره 
node.js برای یه سری کار ها خیلی عالیه ... مشخصا اپلیکیشن هایی که نیاز به ارتباط پایدار بین سرور و کلاینت وجود داره 
ولی برای اپلیکیشن های سنگین و پیچیده که بخش های زیادی دارن مناسب نیست 

اگه اپلیکیشن خیلی بزرگی ندارید برای یکدست بودن کد ها میتونید همش رو با نود پیاده کنید 
در غیر اینصورت از نود به عنوان بخشی از پروژه در کنار یک زبان مناسب بک اند مثل php استفاده میکنن تا نود همون کاری که براش خلق شده رو انجام بده و بقیه موارد رو به عهده زبان دیگه بزاره

----------


## hojjat.sa

من نمیدونم شما این  حرف را روی چه حسابی گفتید !!؟؟؟
با  nodejs و استفاده از expressjs  در اون و با استفاده از mongodb به عنوان یک دیتابیس قدرتمند میتونید بزرگترین سایت ها رو بسازید . هیچ محدودیتی هم نخواید داشت و قدرتش بیشتر از php نباشه کمتر هم نیست. البته من مخالف مقایسه کردن جاوااسکریپت با php یا کلا هر زبان برنامه نویسی با هم هستم . هر کدوک اما اینو بگم که آینده دست nodejs هست و قدرت خارق العاده ای داره .

----------


## hojjat.sa

> node.js برای یه سری کار ها خیلی عالیه ... مشخصا اپلیکیشن هایی که نیاز به ارتباط پایدار بین سرور و کلاینت وجود داره 
> ولی برای اپلیکیشن های سنگین و پیچیده که بخش های زیادی دارن مناسب نیست


من نمیدونم شما این  حرف را روی چه حسابی گفتید !!؟؟؟
با  nodejs و استفاده از expressjs  در اون و با استفاده از mongodb به عنوان یک دیتابیس قدرتمند میتونید بزرگترین سایت ها رو بسازید . هیچ محدودیتی هم نخواید داشت و قدرتش بیشتر از php نباشه کمتر هم نیست. البته من مخالف مقایسه کردن جاوااسکریپت با php یا کلا هر زبان برنامه نویسی با هم هستم .  اما اینو بگم که آینده دست nodejs هست و قدرت خارق العاده ای داره .

----------


## plague

سلام

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

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

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

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

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

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

----------


## tazeha

این سایت با Node.js و سوکت socket.io نوشته شده.
http://www.kalagard.com/

----------


## masudafsar

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



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

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

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

----------


## thinkdiff

> این سایت با Node.js و سوکت socket.io نوشته شده.
> http://www.kalagard.com/



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

----------


## plague

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


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

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

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




> مطمئنید؟ جاوااسکریپت رو روی مرورگرتون غیر فعال کنید سایت میاد بالا بازم ولی فکرکنم نبایدبیاد بالا درسته؟


جاوااسکریپت روی سرور اجرا میشه خروجیش برای کلاینت فرستاده میشه 
میتونی روی فایرفاکست wappalyzer نصب کنی تا تکنولوژی بکار رفته در سایت ها رو ببینی

----------


## cybercoder

مدت هاست من از nodeJS استفاده می کنم به همراه express. برای ساخت RESTful API محشره. علاوه بر اون به صورت توزیع شده هم میشه ازش استفاده کرد و نیازی به استفاده از وب سرورهای خاص برای این کار نداره که مزیت بالایی محسوب میشه.

----------


## SCoder

> مدت هاست من از nodeJS استفاده می کنم به همراه express. برای ساخت RESTful API محشره. علاوه بر اون به صورت توزیع شده هم میشه ازش استفاده کرد و نیازی به استفاده از وب سرورهای خاص برای این کار نداره که مزیت بالایی محسوب میشه.


واقعا محشره و زیبایی اینجاست که جاوا اسکریپت هیچ جا بود ولی الان همه جاست حتی تو دنیای سخت افزار و  از Ryan Dahl بابت این ایده نابش باس تشکر کرد ...

----------


## cybercoder

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

آدم میشناسم جاوا اسکریپت رو سمت مرورگرش خاموش میکرد تو همین فروم!

الان مخصوصا Angular 2 هم میتونی با Electron بیای exe در بیاری هم میتونی تحت وب بمونه هم با IONIC 2 و ... تحت موبایل و ویندوز APP

----------

