محیط Node.js
معماری Node.js به صورت رویداد محور هست که توانایی پردازش درخواست ها رو به صورت asynchronous داره. همچنین single-threaded هست. سرور های سنتی معماری های multi-threaded داشتن و برای هر درخواست یه thread ایجاد میکردن، اما Node.js همه چی رو داخل یک thread هندل میکنه. ممکنه براتون سوال باشه که چطور میتونه به صورت single-threaded میلیون ها درخواست رو هندل کنه و خب جواب این سوال event loop هست. جاوا اسکریپت روی یک thread کار میکنه و عملیات async رو بخاطر دارا بودن event-loop هندل میکنه. هر درخواستی که مدت زمان زیادی بگیره به پس زمینه فرستاده میشه و درخواست بعدی گرفته و پردازش میشه. قبل از ادامه، بریم اول تفاوت پردازش asynchronous با پردازش synchronous رو متوجه بشیم.