আমি তোমার বেদনা কেমন অনুভব করছি!
অনেকের মতোই, আমি নোড.জেএসসের সারমর্মটি পাওয়া খুব কঠিন বলে মনে করি কারণ বেশিরভাগ লোক নোডের যে অংশটিকে দরকারী বলে মনে করে কেবল সেগুলিই লিখে / কথা বলে - এবং যে অংশটি তারা আকর্ষণীয় বলে মনে হয় তা সাধারণত নোডের প্রাথমিকের পরিবর্তে গৌণ উপকার হয় উদ্দেশ্য। আমার অবশ্যই বলতে হবে যে লোকেরা নোড কেবল একটি জাভাস্ক্রিপ্ট রানটাইম বলে এটি পাগল বলে আমি মনে করি। জাভাস্ক্রিপ্টের নোডের ব্যবহার - এবং এর ভি 8 রানটাইম নির্বাচন - এর সহজ অর্থ হ'ল নোডের বিকাশকারীরা যে সমস্যার সমাধান করতে চেয়েছিলেন সেই সমস্যার জন্য সেরা সরঞ্জাম।
নোডের প্রাথমিক উদ্দেশ্যটি ছিল একটি ওয়েব অ্যাপ্লিকেশনে ব্যবহারকারীর ইভেন্টগুলির পরিচালনা আরও দক্ষ করে তোলা। নোড তাই অপ্রতিরোধ্যএকটি ওয়েব অ্যাপ্লিকেশন এর শেষ প্রান্তে ব্যবহৃত। ইভেন্ট ম্যানেজমেন্ট দাবি করেছে যে এই ব্যবহারকারীর ইভেন্টগুলির জন্য সার্ভার মেশিনে কিছু শুনছে। সুতরাং প্রতিটি ইভেন্টের যথাযথ হ্যান্ডলার স্ক্রিপ্টে রুট করার জন্য একটি HTTP সার্ভার স্থাপন করতে হবে। নোড ব্যবহারকারীর অনুরোধগুলির জন্য একটি ডেডিকেটেড পোর্টে দ্রুত সার্ভার সেট আপ করার জন্য একটি কাঠামো সরবরাহ করে। নোড ইভেন্ট হ্যান্ডলিংয়ের জন্য জাভাস্ক্রিপ্ট ব্যবহার করে কারণ জাভাস্ক্রিপ্টের কলব্যাক ফাংশন রয়েছে: এটি নির্ভর করে কোনও কার্যের ফলাফল ফিরে না আসা পর্যন্ত একটি কাজ স্থগিত করার অনুমতি দেয়। অন্য কোনও ভাষায় এই বৈশিষ্ট্য নেই এবং যেগুলির গুগলের ভি 8 রানটাইমের মতো কোনও দোভাষী নেই। বেশিরভাগ ওয়েব বিকাশকারী জাভাস্ক্রিপ্ট জানেন তাই নোডের সাথে কোনও অতিরিক্ত ভাষা শেখা নেই। আরও কী, কলব্যাক ফাংশন থাকা সমস্ত ব্যবহারকারীর কাজ একক থ্রেডে রাখার অনুমতি দেয়ডাটাবেস বা ফাইল সিস্টেম অ্যাক্সেসের দাবিতে কার্যগুলিতে স্পষ্টভাবে অবরুদ্ধকরণ প্রয়োগ না করে। এবং এটি হ'ল ভারী একত্রে ব্যবহারের আওতায় নোডের উচ্চতর নির্বাহী দক্ষতার দিকে পরিচালিত করে - এটির বিকাশের প্রাথমিক উদ্দেশ্য।
নোড ব্যবহারকারীদের দ্রুত শেষের কোডটি দ্রুত লিখতে সহায়তা করার জন্য নোডের বিকাশকারীরা রুটিন কাজের জন্য একটি অন্তর্নির্মিত জেএস লাইব্রেরি (যেমন HTTP অনুরোধ, স্ট্রিং (ডি) কোডিং, স্ট্রিম ইত্যাদি) এবং এনপিএম (নোড প্যাকেজ ম্যানেজার) রিপোজেটরি সম্পর্কিত : এটি একটি ওপেন সোর্স, বিভিন্ন স্ট্যান্ডার্ড এবং কাস্টম ফাংশনের জন্য স্ক্রিপ্ট প্যাকেজগুলির ব্যবহারকারীর দ্বারা পরিচালিত একটি সেট। সমস্ত নোড প্রকল্প প্রতিষ্ঠিত মাধ্যমে একটি প্রকল্পে এনপিএম প্যাকেজ আমদানির অনুমতি দেয় এনপিএম ইনস্টল কমান্ডের।
নোডের মাধ্যমে পরিচালিত ব্যবহারকারীদের অনুরোধগুলির জন্য ওয়েব অ্যাপ্লিকেশন যেমন প্রামাণিকতা, ডাটাবেস অনুসন্ধান, বিষয়বস্তু পরিচালনা (স্ট্রপি সিএমএস) ইত্যাদির প্রয়োজন হবে সেগুলি নোড বন্দরে প্রেরণ করা হবে। (যেখানে ডাটাবেস থেকে প্রাপ্ত ডেটা বিশ্লেষণে অনেক সময় সিপিইউ লাগে, এই ধরণের প্রক্রিয়াটি পৃথক থ্রেডে রাখা ভাল যাতে এটি সহজ ব্যবহারকারীর অনুরোধগুলিকে ধীর করে না)) অন্যান্য ধরণের ব্যবহারকারীর অনুরোধ, যেমন অন্য কোনও ওয়েবপৃষ্ঠা লোড করা , ডাউনলোড সিএসএস / জেএস / চিত্র ফাইল, ইত্যাদি, ব্রাউজারটি সার্ভার মেশিনে ডিফল্ট পোর্ট (গুলি) এ প্রেরণ করা চালিয়ে যেতে থাকবে যেখানে ওয়েব সার্ভার প্রোগ্রাম (অ্যাপাচি, এনজিঞ্জ, ইত্যাদি) তাদের পরিচালনা করবে।
সুতরাং, অনুশীলনে , নোড মূলত দ্রুত সার্ভার তৈরি এবং ইভেন্ট হ্যান্ডলিংয়ের জন্য একটি কাঠামো তবে এটি কেবল ওয়েব সার্ভার প্রোগ্রামের কিছু ফাংশনকে প্রতিস্থাপন করে ।
নোডের অন্যান্য নন-ব্যাক-এন্ড ব্যবহারগুলি এর এক বা অন্য বৈশিষ্ট্যগুলি সহজেই কাজে লাগায়, যেমন ভি 8 ইঞ্জিন। উদাহরণস্বরূপ, ফ্রন্টএন্ড বিল্ড টুলস গ্রান্ট এবং গুল্প নোড.জেএস ব্যবহার করে একটি বিল্ড স্ক্রিপ্ট প্রক্রিয়া করার জন্য যা এসএএসএসকে সিএসএসে রূপান্তর করতে সিএসএস / জেএস ফাইলগুলিকে সংক্ষিপ্ত করতে, চিত্রের আকার / লোডিং ইত্যাদিকে অনুকূল করতে পারে etc. তবে এই ধরণের কাজটি সত্যই কেবলমাত্র নোডের উপ-পণ্য ব্যবহার, এটির মূল ব্যবহার নয় যা ওয়েব অ্যাপ্লিকেশনগুলির জন্য দক্ষ ব্যাকএন্ড প্রক্রিয়া তৈরির জন্য।