CodeCraft with Rubel

CodeCraft with Rubel

Share

13/10/2024

🌐 Blog Project: Tech Tips & Tricks Hub

I developed a blog project using Next.js and NextUI for a modern and responsive frontend experience, coupled with an Express and Mongoose backend to manage data efficiently. Leveraging React Hook Form for user interactions, I implemented features that enhance usability and performance. This project showcases my skills in full-stack development and my commitment to creating user-friendly web applications.

Live Link : https://tech-tips-trick-hub-frontend-lac.vercel.app/

freeCodeCamp.org 04/04/2024

.0
āĻŽāĻ°ā§āĻĄāĻžāύ āĻ“ā§Ÿā§‡āĻŦ āĻĄā§‡āϭ⧇āϞāĻĒāĻŽā§‡āĻ¨ā§āĻŸā§‡āϰ āϜāĻ—āϤ⧇ Node/Express-
Node.js āĻāϰ āχāϤāĻŋāĻšāĻžāϏ:
Node.js āĻ•āĻŋ āϤāĻž āϜāĻžāύāĻžāϰ āφāϗ⧇ āφāĻŽāĻžāĻĻ⧇āϰ āϜāĻžāύāϤ⧇ āĻšāĻŦ⧇ Node.js āĻāϰ āχāϤāĻŋāĻšāĻžāϏ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇āĨ¤ ⧧⧝⧝ā§Ģ āϏāĻžāϞ⧇ āĻŦā§āϰ⧇āĻ¨ā§āĻĄāύ āχāϚ āϜāĻžāĻ­āĻžāĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āϟ āφāĻŦāĻŋāĻˇā§āĻ•āĻžāϰ āĻ•āϰ⧇āύāĨ¤ āĻ•āĻŋāĻ¨ā§āϤ⧁ āϜāĻžāĻ­āĻžāĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āϟ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āĻŦā§āϰāĻžāωāϜāĻžāϰ⧇āχ āϚāϞāϤ⧇ āĻĒāĻžāϰāϤ⧋āĨ¤ āϜāĻžāĻ­āĻžāĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āϟ āĻĻāĻŋā§Ÿā§‡ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āĻĢā§āϰāĻ¨ā§āϟāĻāĻ¨ā§āĻĄā§‡āϰ āĻ•āĻžāϜāχ āĻ•āϰāĻž āĻšāϤ⧋āĨ¤ āϏāĻžāϞāϟāĻž āĻ›āĻŋāϞ⧋ ⧍ā§Ļā§Ļā§Ž āϏāĻžāϞāĨ¤ Google āϤāĻžāĻĻ⧇āϰ āύāϤ⧁āύ āĻ“ā§Ÿā§‡āĻŦ āĻŦā§āϰāĻžāωāϜāĻžāϰ Google Chrome āϰāĻŋāϞāĻŋāϜ āĻ•āϰ⧇āĨ¤ Google Chrome āĻ›āĻŋāϞ⧋ āϜāĻžāĻ­āĻžāĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āĻŸā§‡āϰ āϕ⧋āĻĄ āϰāĻžāύ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻ…āĻĒā§āϟāĻŋāĻŽāĻžāχāϜ āĻāĻ•āϟāĻŋ āĻŦā§āϰāĻžāωāϜāĻžāϰāĨ¤ Google Chrome āϜāĻžāĻ­āĻžāĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āĻŸā§‡āϰ āϕ⧋āĻĄ āĻ­āĻžāϞ⧋āĻ­āĻžāĻŦ⧇ āĻĻā§āϰ⧁āϤ āϰāĻžāύ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻžāϰ āĻŽā§‚āϞ āĻ•āĻžāϰāĻŖ āĻ›āĻŋāϞ⧋ Chrome āĻŦā§āϰāĻžāωāϜāĻžāϰ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž V8 āχāĻžā§āϜāĻŋāύāĨ¤ V8 āχāĻžā§āϜāĻŋāύ āϜāĻžāĻ­āĻžāĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āĻŸā§‡āϰ āϕ⧋āĻĄāϕ⧇ āĻ…āĻĒāϟāĻŋāĻŽāĻžāχāϜ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāϤ⧋āĨ¤ āĻāχ V8 āχāĻžā§āϜāĻŋāύ āĻ•ā§āϞāĻžā§Ÿā§‡āĻ¨ā§āϟ āϏāĻžāχāĻĄā§‡ āϜāĻžāĻ­āĻžāĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āĻŸā§‡āϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ…āĻ¨ā§āϝ āĻĒāĻ°ā§āϝāĻžā§Ÿā§‡ āύāĻŋā§Ÿā§‡ āϝāĻžā§ŸāĨ¤ āĻāϰ āĻĢāϞ⧇ Chrome āϤāĻ–āύāĻ•āĻžāϰ āϏāĻŽā§Ÿ āĻŦā§āϰāĻžāωāϜāĻžāϰ⧇āϰ āĻ­āĻŋāϤāϰ⧇ āϏāĻŦāĻžāϰ āĻļā§€āĻ°ā§āώ⧇ āωāϠ⧇ āφāϏ⧇āĨ¤
⧍ā§Ļā§Ļ⧝ āϏāĻžāϞ⧇ āϰāĻžā§ŸāĻžāύ āĻĄāĻžāĻšāϞ āύāĻžāĻŽāĻ• āĻāĻ• āϏāĻĢāϟāĻ“ā§Ÿā§āϝāĻžāϰ āχāĻžā§āϜāĻŋāύāĻŋ⧟āĻžāϰ āϤāĻ–āύāĻ•āĻžāϰ āϏāĻŽā§Ÿ āϏāĻŦāĻšā§‡ā§Ÿā§‡ āϜāύāĻĒā§āϰāĻŋ⧟ āĻŦā§āϝāĻžāĻ•āĻāĻ¨ā§āĻĄ āĻ“ā§Ÿā§‡āĻ­ āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇āϰ āĻĒāĻžāϰāĻĢāĻ°ā§āĻŽā§‡āĻ¨ā§āϏ⧇āϰ āωāĻĒāϰ āφāĻ‚āϗ⧁āϞ āϤ⧁āϞ⧇āĻ›āĻŋāϞ⧇āύāĨ¤ āϤāĻ–āύ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āϏāĻžāχāĻĄā§‡āϰ āϜāĻ¨ā§āϝ āϏāĻŦāĻšā§‡ā§Ÿā§‡ āϜāύāĻĒā§āϰāĻŋ⧟ āĻ›āĻŋāϞ⧋ Apache HTTP Server. āϰāĻžā§ŸāĻžāύ āĻĄāĻžāĻšāϞ āĻĻāĻžāĻŦā§€ āĻ•āϰ⧇āύ āϝ⧇ Apache HTTP Server āĻāĻ•āχ āϏāĻŽā§Ÿā§‡ āĻ…āϧāĻŋāĻ• āĻĒāϰāĻŋāĻŽāĻžāύ āϰāĻŋā§Ÿā§‡āϞ āϟāĻžāχāĻŽ āχāωāϜāĻžāϰ āĻšā§āϝāĻžāĻ¨ā§āĻĄā§‡āϞ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇ āύāĻžāĨ¤
āĻāχ āĻ•āĻžāϰāϪ⧇āχ āϰāĻžā§ŸāĻžāύ āĻĄāĻžāĻšāϞ āĻ“ āϤāĻžāϰ āϟāĻŋāĻŽ āĻŽāĻŋāϞ⧇ āϤ⧈āϰāĻŋ āĻ•āϰ⧇āύ Node.js. āϝāĻž āϜāĻžāĻ­āĻžāĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āϟāϕ⧇ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āĻ•ā§āϞāĻžā§Ÿā§‡āĻ¨ā§āϟ āϏāĻžāχāĻĄā§‡ āϏ⧀āĻŽāĻžāĻŦāĻĻā§āϧ āύāĻž āϰ⧇āϖ⧇ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āϏāĻžāχāĻĄā§‡āĻ“ āĻāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āύāĻŋāĻļā§āϚāĻŋāϤ āĻ•āϰ⧇āĨ¤ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āϏāĻžāχāĻĄā§‡ āϜāĻžāĻ­āĻžāĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āĻŸā§‡āϰ āϕ⧋āĻĄ āϚāĻžāϞāĻžāύ⧋āϰ āϜāĻ¨ā§āϝ Node.js, Chrome āĻāϰ V8 āχāĻžā§āϜāĻŋāύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇āĨ¤ Node.js āφāĻŦāĻŋāĻˇā§āĻ•āĻžāϰ⧇āϰ āĻŽā§‚āϞ āωāĻĻā§āĻĻ⧇āĻļā§āϝāχ āĻ›āĻŋāϞ⧋ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āϏāĻžāχāĻĄā§‡ āϜāĻžāĻ­āĻžāĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āĻŸā§‡āϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āύāĻŋāĻļā§āϚāĻŋāϤ āĻ•āϰāĻžāĨ¤ āĻŦāĻ°ā§āϤāĻŽāĻžāύ āϏāĻŽā§Ÿ Netflex, NASA, LinkedIn, Paypal āĻāϰ āĻŽāϤ⧋ āĻŦ⧜ āĻŦ⧜ āĻĒā§āϰāϤāĻŋāĻˇā§āĻ āĻžāύāϗ⧁āϞ⧋ āϤāĻžāĻĻ⧇āϰ āĻāĻĒā§āϞāĻŋāϕ⧇āĻļāύ⧇ Node.js āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϛ⧇āĨ¤ Node.js āφāĻŦāĻŋāĻˇā§āĻ•āĻžāϰ⧇āϰ āĻ—āĻ˛ā§āĻĒāϟāĻž āĻ…āύ⧇āĻ•āϟāĻž āύāĻžāϟāĻ•ā§€ā§ŸāĨ¤ āĻ āύāĻŋā§Ÿā§‡ āϏāĻŽā§āĻĒā§āϰāϤāĻŋ Honeypot āύāĻžāĻŽāĻ• āχāωāϟāĻŋāωāĻŦ āĻšā§āϝāĻžāύ⧇āϞ āĻāĻ•āϟāĻŋ āĻĄāϕ⧁āĻŽā§‡āĻ¨ā§āϟāĻžāϰāĻŋ āϤ⧈āϰāĻŋ āĻ•āϰ⧇āϛ⧇āĨ¤ āϝāĻž āĻĻ⧇āĻ–āϞ⧇ Node.js āφāĻŦāĻŋāĻˇā§āĻ•āĻžāϰ⧇āϰ āĻ•āĻžāĻšāĻŋāύāĻŋ āĻŦāĻŋāĻ¸ā§āϤāĻžāϰāĻŋāϤ āϜāĻžāύāĻž āϜāĻžāύāĻž āϝāĻžāĻŦ⧇āĨ¤

Node.js āĻ•āĻŋ?
āĻ…āύ⧇āϕ⧇ Node.js āϕ⧇ āĻāĻ•āϟāĻŋ āĻĒā§āϰ⧋āĻ—ā§āϰāĻžāĻŽāĻŋāĻ‚ āĻ˛ā§āϝāĻžāĻ‚āĻ—ā§ā§Ÿā§‡āϜ āϭ⧇āĻŦ⧇ āϭ⧁āϞ āĻ•āϰ⧇āύāĨ¤ āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻŽā§āϞāϤ Node.js āĻšāĻšā§āϛ⧇ āĻāĻ•āϟāĻŋ āĻ“āĻĒ⧇āύ āϏ⧋āĻ°ā§āϏ, āĻ•ā§āϰāϏ āĻĒā§āĻ˛ā§āϝāĻžāϟāĻĢāĻ°ā§āĻŽ, āϜāĻžāĻ­āĻžāĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āϟ āϰāĻžāύāϟāĻžāχāĻŽ āĻāύāĻ­āĻžā§ŸāϰāύāĻŽā§‡āĻ¨ā§āϟāĨ¤ āĻ•āĻĨāĻžāϟāĻž āĻāĻ•āϟ⧁ āĻ•āĻ āĻŋāύ āĻŽāύ⧇ āĻšāĻšā§āϛ⧇ āϤāĻžāχ āύāĻžāĨ¤ āϕ⧋āύ āĻŦā§āϝāĻžāĻĒāĻžāϰ āύāĻžāĨ¤ āϏāĻšāϜ āĻ•āϰ⧇ āĻŦ⧁āĻāĻŋā§Ÿā§‡ āĻŦāϞāĻ›āĻŋāĨ¤ Node.js āĻāϰ āĻŽā§āϞ āϤāĻŋāύāϟāĻŋ āϜāĻŋāύāĻŋāϏ āĻšāĻšā§āϛ⧇- ā§§. āĻ“āĻĒ⧇āύ āϏ⧋āĻ°ā§āϏ ⧍. āĻ•ā§āϰāϏ āĻĒā§āĻ˛ā§āϝāĻžāϟāĻĢāĻ°ā§āĻŽ ā§Š. āϰāĻžāύāϟāĻžāχāĻŽ āĻāύāĻ­āĻžā§ŸāϰāύāĻŽā§‡āĻ¨ā§āϟāĨ¤
āĻ“āĻĒ⧇āύ āϏ⧋āĻ°ā§āϏ:
āĻ“āĻĒ⧇āύ āϏ⧋āĻ°ā§āϏ⧇āϰ āĻāĻ• āĻ•āĻĨāĻžā§Ÿ āϏāĻšāϜ āĻŦā§āϝāĻžāĻ–ā§āϝāĻž āĻšāĻšā§āϛ⧇- āϏāĻŦāĻžāϰ āϜāĻ¨ā§āϝ āωāĻŽā§āĻŽā§āĻ•ā§āϤāĨ¤ āĻ“āĻĒ⧇āύ āϏ⧋āĻ°ā§āϏ āϏāĻĢāϟāĻ“ā§Ÿā§āϝāĻžāϰāϗ⧁āϞ⧋ āϝ⧇āϕ⧋āύ āĻŽāĻžāύ⧁āώāχ āĻāĻĄāĻŋāϟ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āϝāĻžāϰ āĻ•āĻžāϰāϪ⧇ āϏāĻĢāϟāĻ“ā§Ÿā§āϝāĻžāϰ⧇ āϝāĻĻāĻŋ āϕ⧋āύ āĻŦāĻžāĻ— āĻĨāĻžāϕ⧇ āϤāĻžāĻšāϞ⧇ āϝ⧇āϕ⧋āύ āĻāĻ•āϜāύ āϝāĻĻāĻŋ āϤāĻž āϖ⧁āĻœā§‡ āĻĒāĻžā§Ÿ āϤāĻžāĻšāϞ⧇ āĻ•āĻŽ āϏāĻŽā§Ÿā§‡āχ āϤāĻž āϏāĻŽāĻžāϧāĻžāύ āĻ•āϰāĻž āϝāĻžā§ŸāĨ¤ āϝ⧇āĻšā§‡āϤ⧁ Node.js āĻāĻ•āϟāĻŋ āĻ“āĻĒ⧇āύ āϏ⧋āĻ°ā§āϏ āϏāĻĢāϟāĻ“ā§Ÿā§āϝāĻžāϰ āϤāĻžāχ Node.js āϤ⧈āϰāĻŋāϰ āĻĒ⧇āĻ›āύ⧇ āĻ…āύ⧇āϕ⧇āϰ āĻ•āĻ¨ā§āĻŸā§āϰāĻŋāĻŦāĻŋāωāĻļāĻžāύ āφāϛ⧇āĨ¤ āĻ•āĻ¨ā§āĻŸā§āϰāĻŋāĻŦāĻŋāωāϟāϰāϰāĻž āĻĒā§āϰāϤāĻŋāύāĻŋ⧟āϤ Node.js āĻ āύāϤ⧁āύ āύāϤ⧁āύ āĻŦ⧈āĻļāĻŋāĻˇā§āĻŸā§āϝ āϝ⧁āĻ•ā§āϤ āĻ•āϰ⧇ āϝāĻžāĻšā§āϛ⧇āύ āĻāĻŦāĻ‚ āϕ⧋āύ āĻ¤ā§āϰ⧁āϟāĻŋ āĻĨāĻžāĻ•āϞ⧇ āϤāĻž āϏāĻŽāĻžāϧāĻžāύ āĻ•āϰāϛ⧇āύāĨ¤
āĻ•ā§āϰāϏ āĻĒā§āĻ˛ā§āϝāĻžāϟāĻĢāĻ°ā§āĻŽ:
āĻ•ā§āϰāϏ āĻĒā§āĻ˛ā§āϝāĻžāϟāĻĢāĻ°ā§āĻŽā§‡āϰ āĻŽāĻžāύ⧇ āĻšāĻšā§āϛ⧇ āĻāϟāĻŋ āĻļ⧁āϧ⧁ āĻāĻ•āϟāĻŋ āĻ…āĻĒāĻžāϰ⧇āϟāĻŋāĻ‚ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āϰ āĻŽāĻ§ā§āϝ⧇āχ āϏ⧀āĻŽāĻžāĻŦāĻĻā§āϧ āύ⧟āĨ¤ āχāωāϜāĻžāϰ āϚāĻžāχāϞ⧇ Window, Linux, MacOS āϏāĻš āϝ⧇āϕ⧋āύ āĻ…āĻĒāĻžāϰ⧇āϟāĻŋāĻ‚ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡ Node.js āϕ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŦ⧇āĨ¤
āϰāĻžāύāϟāĻžāχāĻŽ āĻāύāĻ­āĻžā§ŸāϰāύāĻŽā§‡āĻ¨ā§āϟ:
āĻĒā§āϰ⧋āĻ—ā§āϰāĻžāĻŽāĻŋāĻ‚ āĻ˛ā§āϝāĻžāĻ‚āĻ—ā§ā§Ÿā§‡āĻœā§‡āϰ āϰāĻžāύāϟāĻžāχāĻŽ āĻāύāĻ­āĻžā§ŸāϰāύāĻŽā§‡āĻ¨ā§āϟ āĻšāĻšā§āϛ⧇ āĻāĻŽāύ āĻāĻ•āϟāĻŋ āĻāύāĻ­āĻžā§ŸāϰāύāĻŽā§‡āĻ¨ā§āϟ āϝ⧇āĻ–āĻžāύ⧇ āχāωāϜāĻžāϰ āϕ⧋āύ āĻāĻ•āϟāĻŋ āĻ¸ā§āĻĒ⧇āϏāĻŋāĻĢāĻŋāĻ• āĻ˛ā§āϝāĻžāĻ‚āĻ—ā§ā§Ÿā§‡āĻœā§‡āϰ āϕ⧋āĻĄ āĻāĻ•ā§āϏāĻŋāĻ•āĻŋāωāϟ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āĻāχ āĻāύāĻ­āĻžā§ŸāϰāύāĻŽā§‡āĻ¨ā§āϟ āωāĻ•ā§āϤ āĻ˛ā§āϝāĻžāĻ‚āĻ—ā§ā§Ÿā§‡āĻœā§‡āϰ āϕ⧋āĻĄ āĻāĻ•ā§āϏāĻŋāĻ•āĻŋāωāϟ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻĒā§āĻ°ā§Ÿā§‹āϜāĻ¨ā§€ā§Ÿ āϏāĻ•āϞ āϜāĻŋāύāĻŋāϏ āϏāϰāĻŦāϰāĻžāĻš āĻ•āϰ⧇āĨ¤ Node.js āĻšāĻšā§āϛ⧇ āϜāĻžāĻ­āĻžāĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āĻŸā§‡āϰ āϰāĻžāύāϟāĻžāχāĻŽ āĻāύāĻ­āĻžā§ŸāϰāύāĻŽā§‡āĻ¨ā§āϟāĨ¤ Node.js āĻ›āĻžā§œāĻžāĻ“ āϜāĻžāĻ­āĻžāĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āĻŸā§‡āϰ āĻ…āĻ¨ā§āϝāϤāĻŽ āϏāĻšāϜ āϰāĻžāύāϟāĻžāχāĻŽ āĻāύāĻ­āĻžā§ŸāϰāύāĻŽā§‡āĻ¨ā§āĻŸā§‡āϰ āωāĻĻāĻžāĻšāϰāĻŖ āĻšāĻšā§āϛ⧇ āĻ“ā§Ÿā§‡āĻŦ āĻŦā§āϰāĻžāωāϜāĻžāϰāĨ¤ āϝāĻž āĻ•ā§āϞāĻžā§Ÿā§‡āĻ¨ā§āϟ āϏāĻžāχāĻĄā§‡ āϜāĻžāĻ­āĻžāĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āĻŸā§‡āϰ āϕ⧋āĻĄ āĻāĻ•ā§āϏāĻŋāĻ•āĻŋāωāϟ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āϏāĻ•āϞ āϰāĻŋāϏ⧋āĻ°ā§āϏ āϏāϰāĻŦāϰāĻžāĻš āĻ•āϰ⧇āĨ¤

āφāĻļāĻž āĻ•āϰāĻ›āĻŋ āĻāĻŦāĻžāϰ āϏāĻŦāĻžāχ āĻŦ⧁āĻāϤ⧇ āĻĒ⧇āϰ⧇āϛ⧇āύ āϝ⧇ Node.js āϝ⧇ āϕ⧋āύ āĻĒā§āϰ⧋āĻ—ā§āϰāĻžāĻŽāĻŋāĻ‚ āĻ˛ā§āϝāĻžāĻ‚āĻ—ā§ā§Ÿā§‡āϜ āύāĻž āĻāĻŦāĻ‚ āĻāϟāĻŋ āϜāĻžāĻ­āĻžāĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āĻŸā§‡āϰ āϕ⧋āύ āĻĢā§āϰ⧇āĻŽāĻ“ā§ŸāĻžāĻ°ā§āĻ•āĻ“ āύāĻžāĨ¤ āĻāϟāĻŋ āĻšāĻšā§āϛ⧇ āĻāĻ•āϟāĻŋ āϏāĻĢāϟāĻ“ā§Ÿā§āϝāĻžāϰ āϝāĻž āϜāĻžāĻ­āĻžāĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āĻŸā§‡āϰ āϕ⧋āĻĄ āĻāĻ•ā§āϏāĻŋāĻ•āĻŋāωāϟ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āφāϰ⧋ āϏāĻšāϜāĻ­āĻžāĻŦ⧇ āĻŦāϞāϤ⧇ āϗ⧇āϞ⧇, Node.js āĻšāĻšā§āϛ⧇ āϜāĻžāĻ­āĻžāĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āϟ āϰāĻžāύāϟāĻžāχāĻŽ āĻāύāĻ­āĻžā§ŸāϰāύāĻŽā§‡āĻ¨ā§āϟāĨ¤ āĻāϟāĻŋ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āϏāĻžāχāĻĄā§‡ āϜāĻžāĻ­āĻžāĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āĻŸā§‡āϰ āϕ⧋āĻĄ āĻāĻ•ā§āϏāĻŋāĻ•āĻŋāωāϟ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āϤ⧈āϰāĻŋ āĻ•āϰāĻž āĻšā§Ÿā§‡āϛ⧇āĨ¤

Node.js āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āĻ•āĻžāϜ āĻ•āϰ⧇?
Node.js āĻāϰ āĻŦ⧇āĻļāĻŋāϰāĻ­āĻžāĻ— āϕ⧋āĻĄ āϞ⧇āĻ–āĻž āĻšā§Ÿā§‡āĻ›āĻŋāϞ⧋ C āĻāĻŦāĻ‚ C++ āĻĻāĻŋā§Ÿā§‡āĨ¤ C āĻāϰ āĻŽāϤ⧋ āϞ⧋ āϞ⧇āϭ⧇āϞ āĻ˛ā§āϝāĻžāĻ‚āĻ—ā§ā§Ÿā§‡āϜ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻžāϰ āĻ•āĻžāϰāϪ⧇ āϏāĻĢāϟāĻ“ā§Ÿā§āϝāĻžāϰāϟāĻŋ āĻ…āĻĒāĻžāϰ⧇āϟāĻŋāĻ‚ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āϰ āϰāĻŋāϏ⧋āĻ°ā§āϏāϗ⧁āϞ⧋āϕ⧇ āĻāĻ•ā§āϏ⧇āϏ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇ āĻāĻŦāĻ‚ āϤāĻžāĻĻ⧇āϰ āĻĻāĻŋā§Ÿā§‡ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āχāύāĻ¸ā§āĻŸā§āϰāĻžāĻ•āĻļāύ āĻāĻ•ā§āϏāĻŋāĻ•āĻŋāωāϟ āĻ•āϰāĻžāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āĻ•āĻŋāĻ¨ā§āϤ⧁ Node.js āĻ•āĻžāϜ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻāϟāĻŋ āĻ›āĻžā§œāĻžāĻ“ āĻ…āĻ¨ā§āϝāĻžāĻ¨ā§āϝ āĻ…āύ⧇āĻ• āϜāϟāĻŋāϞāϤāĻž āφāϛ⧇āĨ¤

Node.js āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āĻ•āĻžāϜ āĻ•āϰ⧇ āϤāĻž āĻŦ⧁āĻāϤ⧇ āĻšāϞ⧇ āφāĻŽāĻžāĻĻ⧇āϰ āϏāĻŦāĻžāϰ āφāϗ⧇ āĻāϰ āϤāĻŋāύāϟāĻŋ āĻŽā§āϞ āωāĻĒāĻžāĻĻāĻžāύ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āϜāĻžāύāϤ⧇ āĻšāĻŦ⧇āĨ¤
V8 āχāĻžā§āϜāĻŋāύ
Libuv
Event Loop
V8 āχāĻžā§āϜāĻŋāύ:
V8 āχāĻžā§āϜāĻŋāύ āĻšāϞ⧋ āϜāĻžāĻ­āĻžāĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āĻŸā§‡āϰ āĻāĻ•āϟāĻŋ āχāĻžā§āϜāĻŋāύ āϝāĻž Chrome āĻŦā§āϰāĻžāωāϜāĻžāϰ⧇ āϜāĻžāĻ­āĻžāĻ•ā§āϰāĻŋāĻĒā§āĻŸā§‡āϰ āϕ⧋āĻĄ āĻāĻ•ā§āϏāĻŋāĻ•āĻŋāωāϟ āĻ•āϰ⧇āĨ¤ Chrome āĻ›āĻžā§œāĻžāĻ“ āĻ…āĻ¨ā§āϝāĻžāĻ¨ā§āϝ āĻŦā§āϰāĻžāωāϜāĻžāϰāϗ⧁āϞ⧋ āϜāĻžāĻ­āĻžāĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āĻŸā§‡āϰ āϕ⧋āĻĄ āĻāĻ•ā§āϏāĻŋāĻ•āĻŋāωāϟ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻ­āĻŋāĻ¨ā§āύ āĻ­āĻŋāĻ¨ā§āύ āχāĻžā§āϜāĻŋāύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻĨāĻžāϕ⧇āĨ¤ āϝ⧇āĻŽāύ, Firefox āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ SpiderMonkey, Safari āĻŦā§āϰāĻžāωāϜāĻžāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ JavascriptCore. V8 āχāĻžā§āϜāĻŋāύ⧇ āĻāĻ•āϟāĻŋ āĻŽā§‡āĻŽā§‹āϰāĻŋ āĻšāĻŋāĻĒ āĻāĻŦāĻ‚ āĻ•āϞ āĻ¸ā§āĻŸā§āϝāĻžāĻ• āĻĨāĻžāϕ⧇āĨ¤ āĻāϗ⧁āϞ⧋ āĻšāĻšā§āϛ⧇ V8 āχāĻžā§āϜāĻŋāύ⧇āϰ āĻŦāĻŋāĻ˛ā§āĻĄāĻŋāĻ‚ āĻŦā§āϞāĻ•āĨ¤ āĻāϗ⧁āϞ⧋ āĻŦā§āϰāĻžāωāϜāĻžāϰ⧇ āϜāĻžāĻ­āĻžāĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āĻŸā§‡āϰ āϕ⧋āĻĄ āĻāĻ•ā§āϏāĻŋāĻ•āĻŋāωāϟ āĻ•āϰāϤ⧇ āϏāĻžāĻšāĻžāĻ¯ā§āϝ āĻ•āϰ⧇āĨ¤
āĻŽā§‡āĻŽā§‹āϰāĻŋ āĻšāĻŋāĻĒ āĻšāĻšā§āϛ⧇ V8 āχāĻžā§āϜāĻŋāύ⧇āϰ āĻĄāĻžāϟāĻž āĻ¸ā§āĻŸā§‹āϰāĨ¤ āϝāĻ–āύāχ āφāĻŽāϰāĻž āϕ⧋āύ āϭ⧇āϰāĻŋāϝāĻŧ⧇āĻŦāϞ āϤ⧈āϰāĻŋ āĻ•āϰāĻŋ V8 āχāĻžā§āϜāĻŋāύ āϏ⧇āχ āϭ⧇āϰāĻŋāϝāĻŧ⧇āĻŦāϞāϟāĻŋāϕ⧇ āĻŽā§‡āĻŽā§‹āϰāĻŋ āĻšāĻŋāĻĒ⧇ āϏāĻ‚āϰāĻ•ā§āώāĻŖ āĻ•āϰ⧇āĨ¤ āĻŽā§‡āĻŽā§‹āϰāĻŋ āĻšāĻŋāĻĒāϕ⧇ āĻŦā§āϝāĻžāĻ•āĻĒā§āϝāĻžāϕ⧇āϰ āϏāĻžāĻĨ⧇āĻ“ āϤ⧁āϞāύāĻž āĻ•āϰāĻž āϝāĻžā§ŸāĨ¤ āĻ•āĻžāϰāĻŖ āĻāϰ āϭ⧇āϤāϰ⧇ āϭ⧇āϰāĻŋā§Ÿā§‡āĻŦāϞāϗ⧁āϞ⧋āϤ⧇ āĻ…āĻŦāĻœā§‡āĻ•ā§āϟ āĻāĻŦāĻ‚ āĻĢāĻžāĻ‚āĻļāύ āϗ⧁āϞ⧋ āϏāĻ‚āϰāĻ•ā§āώāĻŖ āĻ•āϰāĻž āĻĨāĻžāϕ⧇āĨ¤
āχāĻžā§āϜāĻŋāύ āϝāĻ–āύ āϕ⧋āύ āϕ⧋āĻĄ āĻāĻ•ā§āϏāĻŋāĻ•āĻŋāωāϟ āĻ•āϰ⧇ āϤāĻ–āύ āĻŽā§‡āĻŽā§‹āϰāĻŋ āĻšāĻŋāĻĒ āĻĨ⧇āϕ⧇ āϕ⧋āĻĄ āĻāĻ•ā§āϏāĻŋāĻ•āĻŋāωāĻļāύ⧇āϰ āϜāĻ¨ā§āϝ āĻĒā§āϰāϝāĻŧā§‹āϜāύ⧀āϝāĻŧ āϭ⧇āϰāĻŋāϝāĻŧ⧇āĻŦāϞ āϏāϰāĻŦāϰāĻžāĻš āĻ•āϰāĻž āĻšā§ŸāĨ¤
āĻāĻŦāĻžāϰ āφāϏāĻŋ āĻ•āϞ āĻ¸ā§āĻŸā§āϝāĻžāϕ⧇āĨ¤ āĻ•āϞ āĻ¸ā§āĻŸā§āϝāĻžāĻ• āĻšāĻšā§āϛ⧇ V8 āχāĻžā§āϜāĻŋāύ⧇āϰ āφāϰ⧇āĻ•āϟāĻŋ āĻŦāĻŋāĻ˛ā§āĻĄāĻŋāĻ‚ āĻŦā§āϞāĻ•āĨ¤ āĻāϟāĻŋ āĻāĻ•āϟāĻŋ āĻĄāĻžāϟāĻž āĻ¸ā§āĻŸā§āϰāĻžāĻ•āϚāĻžāϰ āϝāĻž āĻĢāĻžāĻ‚āĻļāύ āĻāĻ•ā§āϏāĻŋāĻ•āĻŋāωāĻļāύ⧇āϰ āĻ…āĻ°ā§āĻĄāĻžāϰ āĻŽā§‡āχāύāĻŸā§‡āχāύ āĻ•āϰ⧇ āĻĨāĻžāϕ⧇āĨ¤ āϝāĻ–āύ āϕ⧋āύ āĻĢāĻžāĻ‚āĻļāύāϕ⧇ āĻ•āϞ āĻ•āϰāĻž āĻšāϝāĻŧ, āϏ⧇āϟāĻŋ āϏāĻŦāĻžāϰ āφāϗ⧇ āĻāχ āĻ•āϞ āĻ¸ā§āĻŸā§āϝāĻžāϕ⧇āϰ āĻ­āĻŋāϤāϰ āφāϏ⧇āĨ¤ āχāĻžā§āϜāĻŋāύ āϝāĻ–āύ āϏ⧇āχ āĻĢāĻžāĻ‚āĻļāύāϕ⧇ āĻāĻ•ā§āϏāĻŋāĻ•āĻŋāωāϟ āĻ•āϰ⧇ āĻĢ⧇āϞ⧇ āϤāĻ–āύ āϏ⧇āϟāĻŋ āĻ•āϞ āĻ¸ā§āĻŸā§āϝāĻžāϕ⧇āϰ āϜāĻžā§ŸāĻ—āĻž āĻ¤ā§āϝāĻžāĻ— āĻ•āϰ⧇āĨ¤

Libub:
Libub āĻšāĻšā§āϛ⧇ Node.js āĻāϰ āφāϰ⧇āĻ•āϟāĻŋ āϗ⧁āϰ⧁āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖ āωāĻĒāĻžāĻĻāĻžāύāĨ¤ Libub āĻšāĻšā§āϛ⧇ C āĻāϰ āĻāĻ•āϟāĻŋ āϞāĻžāχāĻŦā§āϰ⧇āϰāĻŋ āϝāĻž āχāύāĻĒ⧁āϟ/āφāωāϟāĻĒ⧁āϟ (I/O) āĻ…āĻĒāĻžāϰ⧇āĻļāύ āĻĒāĻžāϰāĻĢāĻ°ā§āĻŽ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āĻšā§ŸāĨ¤
Libub āĻšāĻšā§āϛ⧇ āĻāĻ•āϟāĻŋ āĻ•ā§āϰāϏ āĻĒā§āĻ˛ā§āϝāĻžāϟāĻĢāĻ°ā§āĻŽ āϞāĻžāχāĻŦā§āϰ⧇āϰāĻŋ āϝāĻž āϝ⧇āϕ⧋āύ āĻ…āĻĒāĻžāϰ⧇āϟāĻŋāĻ‚ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āχ āϚāϞāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āĻāϟāĻŋ āĻŽā§āϞāϤ āĻĢā§‹āĻ•āĻžāϏ āĻ•āϰ⧇ asynchronous I/O āĻ…āĻĒāĻžāϰ⧇āĻļāύ⧇āϰ āωāĻĒāϰāĨ¤ āĻāϟāĻŋ āĻāĻ•āĻŦāĻžāϰ⧇ āĻ…āύ⧇āĻ•āϗ⧁āϞ⧋ I/O āĻ…āĻĒāĻžāϰ⧇āĻļāύ āĻĒāϰāĻŋāϚāĻžāϞāύāĻž āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤

Event Loop:
Node.js āĻāϰ āĻ…āĻ¨ā§āϝāϤāĻŽ āϗ⧁āϰ⧁āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖ āωāĻĒāĻžāĻĻāĻžāύ āĻšāĻšā§āϛ⧇ Event LoopāĨ¤ āϝāĻ–āύ āφāĻŽāϰāĻž āϜāĻžāĻ­āĻžāĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āĻŸā§‡āϰ āϕ⧋āĻĄ āϰāĻžāύ āĻ•āϰāĻŋ āϤāĻ–āύ āϏ⧇āϗ⧁āϞ⧋āϰ āĻ­āĻŋāϤāϰ āĻ•āĻŋāϛ⧁ Asynchronous āϕ⧋āĻĄ āĻĨāĻžāϕ⧇āĨ¤ Node.js āϏ⧇āϗ⧁āϞ⧋āϕ⧇ Node.js API āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻāĻ•ā§āϏāĻŋāĻ•āĻŋāωāϟ āĻ•āϰ⧇āĨ¤ Asynchronous āĻĢāĻžāĻ‚āĻļāύāϗ⧁āϞ⧋ āϏāĻžāϧāĻžāϰāĻŖāϤ Normal āĻĢāĻžāĻ‚āĻļāύ āĻāĻ•ā§āϏāĻŋāĻ•āĻŋāωāϟ āĻšāĻ“ā§ŸāĻžāϰ āĻĒāϰ āϰāĻžāύ āĻšā§ŸāĨ¤ āϏ⧇āϜāĻ¨ā§āϝ āϏ⧇āϗ⧁āϞ⧋āϕ⧇ Callback Queue āĻāϰ āϭ⧇āϤāϰ⧇ āϰāĻžāĻ–āĻž āĻšā§ŸāĨ¤ Callback Queue FIFO(First In First Out) āĻĒāĻĻā§āϧāϤāĻŋ āĻ…āύ⧁āϏāϰāĻŖ āĻ•āϰ⧇ āĻ•āĻžāϜ āĻ•āϰ⧇āĨ¤ āϝāĻžāϰ āĻŽāĻžāύ⧇ āĻšāĻšā§āϛ⧇ āϝ⧇ āχāύāĻ¸ā§āĻŸā§āϰāĻžāĻ•āĻļāύāϟāĻŋ Queue āϤ⧇ āφāϗ⧇ āĻĒā§āϰāĻŦ⧇āĻļ āĻ•āϰāĻŦ⧇ āϏ⧇āϟāĻŋāχ āφāϗ⧇ āĻāĻ•ā§āϏāĻŋāĻ•āĻŋāωāϟ āĻšāĻŦ⧇āĨ¤
Event Loop āϝāĻ–āύ āϰāĻžāύ āĻ•āϰāĻŦ⧇ āϤāĻ–āύ āĻāϟāĻŋ āĻšā§‡āĻ• āĻ•āϰ⧇ āϝ⧇ āĻ•āϞ āĻ¸ā§āĻŸā§āϝāĻžāĻ• āĻ–āĻžāϞāĻŋ āĻ•āĻŋāύāĻžāĨ¤ āϝāĻĻāĻŋ āĻ•āϞ āĻ¸ā§āĻŸā§āϝāĻžāĻ• āĻ–āĻžāϞāĻŋ āĻšā§Ÿ āϤāĻ–āύ āĻāϟāĻŋ āĻĒā§āϰāĻĨāĻŽ āχāύāĻ¸ā§āĻŸā§āϰāĻžāĻ•āĻļāύāϕ⧇ Callback Queue -āϤ⧇ āĻ•āϰ⧇ āϜāĻžāĻ­āĻžāĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āϟ āχāĻžā§āϜāĻŋāύ⧇ āĻĒāĻžāĻ āĻžā§ŸāĨ¤
āĻāĻ•āĻ•āĻĨāĻžā§Ÿ āĻŦāϞāϤ⧇ āϗ⧇āϞ⧇ Event Loop āϜāĻžāĻ­āĻžāĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āĻŸā§‡āϰ V8 āχāĻžā§āϜāĻŋāύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ Asynchronous āχāύāĻ¸ā§āĻŸā§āϰāĻžāĻ•āĻļāύāϗ⧁āϞ⧋āϰ āĻŽāĻ§ā§āϝ āĻĨ⧇āϕ⧇ Callback āϗ⧁āϞ⧋āϕ⧇ āĻāĻ•ā§āϏāĻŋāĻ•āĻŋāωāϟ āĻ•āϰ⧇āĨ¤

Node.js āĻĻāĻžāĻŦā§€ āĻ•āϰ⧇ āϝ⧇ āĻāϟāĻŋ Event-Driven āφāĻ°ā§āĻ•āĻŋāĻŸā§‡āĻ•āϚāĻžāϰ āĻ…āύ⧁āϏāϰāĻŖ āĻ•āϰ⧇āĨ¤ āĻāϰ āĻŽāĻžāύ⧇ āĻšāĻšā§āϛ⧇ Node.js āĻĒā§āϰāĻĨāĻŽā§‡ āϕ⧋āύ Event -āϕ⧇ Listen āĻ•āϰ⧇ āĻāĻŦāĻ‚ āĻĒāϰ⧇ āϏ⧇āχ Event āĻāϰ āĻŦāĻŋāĻĒāϰ⧀āϤ⧇ āĻĒā§āϰāϤāĻŋāĻ•ā§āϰāĻŋ⧟āĻž āĻ•āϰ⧇āĨ¤
āϝāĻ–āύāχ āϕ⧋āύ Event Trigger āĻ•āϰāĻž āĻšā§Ÿ Node.js, Event -āϕ⧇ Event Loop āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ Event āϟāĻŋāϕ⧇ Callback āĻāϰ āĻ­āĻŋāϤāϰ āϞ⧋āĻĄ āĻ•āϰ⧇āĨ¤ āĻāχ āĻ•āĻžāϰāϪ⧇ Real Time Data transfer āĻāϰ āϜāĻ¨ā§āϝ Node.js āĻ…āĻ¨ā§āϝāϤāĻŽ āϏ⧇āϰāĻž āĻāĻ•āϟāĻŋ āĻŽāĻžāĻ§ā§āϝāĻŽāĨ¤

Node.js āĻāϰ Module:
Node.js āĻāϰ āĻĢāĻžāύāĻļāύāĻžāϞāĻŋāϟāĻŋāϗ⧁āϞ⧋ āĻāϰ āĻ­āĻŋāϤāϰ āĻĨāĻžāĻ•āĻž āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ Module āĻāϰ āĻ­āĻŋāϤāϰ āĻ¸ā§āĻŸā§‹āϰ āĻ•āϰāĻž āĻĨāĻžāϕ⧇āĨ¤ Node.js āĻ•āĻŋāϛ⧁ āωāĻ˛ā§āĻ˛ā§āϝ⧇āĻ–āϝ⧋āĻ—ā§āϝ Module āĻšāϞ⧋- HTTP, File System, URL etc.
Express.js āĻ•āĻŋ:
Express.js āĻšāĻšā§āϛ⧇ Node.js āĻāϰ āϜāύāĻĒā§āϰāĻŋ⧟ āĻāĻ•āϟāĻŋ Backend FrameworkāĨ¤ āĻŦāĻ°ā§āϤāĻŽāĻžāύ āĻ“ā§Ÿā§‡āĻŦ āĻĄā§‡āϭ⧇āϞāĻĒāĻŽā§‡āĻ¨ā§āϟ āĻāϰ āϜāĻ—āϤ⧇ Mordern Web Application āϤ⧈āϰāĻŋāϤ⧇ Express.js āϗ⧁āϰ⧁āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖ āĻ­ā§‚āĻŽāĻŋāĻ•āĻž āĻĒāĻžāϞāύ āĻ•āϰāϛ⧇āĨ¤

Express.js āĻāϰ āχāϤāĻŋāĻšāĻžāϏ:
āϏāĻžāϞāϟāĻž āĻ›āĻŋāϞ⧋ ⧍ā§Ļā§§ā§Ļ. Node.js āϤāĻ–āύāĻ“ āύāϤ⧁āύ āĻ›āĻŋāϞ⧋āĨ¤ āĻ“āχ āϏāĻŽā§ŸāϟāĻžāϤ⧇āχ Express.js āϤ⧈āϰāĻŋ āĻ•āϰāĻž āĻšā§ŸāĨ¤ āĻ“āĻĒ⧇āύ āϏ⧋āĻ°ā§āϏ āĻĄā§‡āĻĒ⧇āϞāĻĒāĻžāϰ āϟāĻŋāĻœā§‡ āĻšāϞāĻ“ā§Ÿā§‡āϚ⧁āĻ• Express.js āϤ⧈āϰāĻŋāϰ āϜāĻ¨ā§āϝ āĻĒā§āϰāĻĨāĻŽ āĻĒāĻĻāĻ•ā§āώ⧇āĻĒ āĻ—ā§āϰāĻšāĻŖ āĻ•āϰ⧇āĨ¤ āϤāĻŋāύāĻŋ āĻāϟāĻŋ āϤ⧈āϰāĻŋāϰ āϜāĻ¨ā§āϝ āĻ…āĻ¨ā§āϝāĻžāĻ¨ā§āϝ āĻĢā§āϰ⧇āĻŽāĻ“ā§ŸāĻžāĻ°ā§āĻ•āϗ⧁āϞ⧋ āĻĨ⧇āϕ⧇ āĻ•āĻŋāϛ⧁ āĻ•āύāϏ⧇āĻĒā§āϟ āϤ⧁āϞ⧇ āύ⧇āύāĨ¤ Node.js āĻāϰ āĻ…āĻ—ā§āϰāĻ—āϤāĻŋāϰ āϏāĻžāĻĨ⧇ āϏāĻžāĻĨ⧇ Express.js āĻ“ āωāĻ¨ā§āύāϤāĻŋ āĻ•āϰāϤ⧇ āĻĨāĻžāϕ⧇āĨ¤

Express.js āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āĻ•āĻžāϜ āĻ•āϰ⧇:
Express.js, Node.js āĻ­āĻŋāĻ¤ā§āϤāĻŋāĻ• Backend Application āĻŦāĻžāύāĻžāύ⧋āϰ āϜāĻ¨ā§āϝ middleware based āϞāĻžāχāĻŦā§āϰ⧇āϰāĻŋ āĻšāĻŋāϏ⧇āĻŦ⧇ āĻ•āĻžāϜ āĻ•āϰ⧇āĨ¤ Express.js, backend āĻāϰ API āϤ⧈āϰāĻŋāϰ āϜāĻ¨ā§āϝ āĻāĻŦāĻ‚ Static āĻ“ Dynamic web application āĻāϰ Server āĻšāĻŋāϏ⧇āĻŦ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āĻšā§ŸāĨ¤
āĻĢā§āϰ⧇āĻŽāĻ“ā§ŸāĻžāĻ°ā§āĻ•āϟāĻŋāϰ āĻāĻ•āϟāĻŋ Modular Architecture āĻ°ā§Ÿā§‡āϛ⧇āĨ¤ āϝāĻž āĻĄā§‡āϭ⧇āϞāĻĒāĻžāϰāĻĻ⧇āϰ āύāĻŋāĻ°ā§āĻŦāĻŋāĻ˜ā§āύ⧇ Middleware āĻĢāĻžāĻ‚āĻļāύ āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇ āĻĻā§‡ā§ŸāĨ¤ āϝ⧇ āĻĢāĻžāĻ‚āĻļāύāϗ⧁āϞ⧋ āϕ⧋āύ āϰāĻžāωāϟ āĻšāĻŋāϟ āĻ•āϰāĻžāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āĻāĻ•ā§āϏāĻŋāĻ•āĻŋāωāϟ āĻšā§ŸāĨ¤
Express.js āϏ⧇āϟ āφāĻĒ:
āύāĻŋāĻšā§‡āϰ āĻ•ā§Ÿā§‡āĻ•āϟāĻŋ āĻĒāĻĻā§āϧāϤāĻŋ āĻ…āύ⧁āϏāϰāĻŖ āĻ•āϰ⧇ āĻāĻ•āϟāĻŋ Express Application āϏ⧇āϟ āφāĻĒ āĻ•āϰāĻž āϝāĻžā§Ÿ-
āĻĒā§āϰāĻĨāĻŽā§‡ āύāĻŋāĻšā§‡āϰ āĻ•āĻŽāĻžāĻ¨ā§āĻĄāϟāĻŋ āĻĻāĻŋā§Ÿā§‡ Node.js āĻāϰ āĻĒā§āϰāĻœā§‡āĻ•ā§āϟ Initialize āĻ•āϰāϤ⧇ āĻšāĻŦ⧇-
npm init -y
āϤāĻžāϰāĻĒāϰ Express.js āĻāϰ Dependency āϗ⧁āϞ⧋ āχāύāĻ¸ā§āϟāϞ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇-
npm install express
āĻāĻŦāĻžāϰ āĻāĻ•āϟāĻŋ āϰ⧁āϟ āĻĢāĻžāχāϞ āύāĻŋāĻ°ā§āϧāĻžāϰāĻŖ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ āϝāĻžāϰ āύāĻžāĻŽ āĻšāĻŦ⧇ index.js. āĻ“āχ āĻĢāĻžāχāϞāϟāĻŋāϰ āĻ­āĻŋāϤāϰ āύāĻŋāĻšā§‡āϰ āϕ⧋āĻĄāϗ⧁āϞ⧋ āϞāĻŋāĻ–āϞ⧇āχ āĻāĻ•āϟāĻŋ āϏāĻŋāĻŽā§āĻĒāϞ Express.js āϏāĻžāĻ°ā§āĻ­āĻžāϰ āϤ⧈āϰāĻŋ āĻšā§Ÿā§‡ āϝāĻžāĻŦ⧇-
const express = require('express')
// initialize an Express application
const app = express()
// define a simple "/api/my-server" route
app.get('/api/my-server', (req, res) => {
res.send('Welcome to my server')
})
const PORT = process.env.PORT || 3000
app.listen(PORT, () => {
console.log(`Server is running on port ${PORT}`)
}
āϏāĻžāĻ°ā§āĻ­āĻžāϰāϟāĻŋ āϰāĻžāύ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āύāĻŋāĻšā§‡āϰ āĻ•āĻŽāĻžāĻ¨ā§āĻĄāϟāĻŋ āĻĻāĻŋāϤ⧇ āĻšāĻŦ⧇-
node index.js
āϰāĻžāύ āĻ•āϰāĻžāϰ āĻĒāϰ āύāĻŋāĻšā§‡āϰ āĻāĻ¨ā§āĻĄāĻĒā§Ÿā§‡āĻ¨ā§āĻŸā§‡ āĻšāĻŋāϟ āĻ•āϰāϞ⧇āχ āϰ⧇āϏāĻĒāĻ¨ā§āϏ āĻĻ⧇āĻ–āĻž āϝāĻžāĻŦ⧇-
http://localhost:3000/api/my-server
āϕ⧇āύ Express.js āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻŦā§‹:
Performance:
Express.js āĻāϰ āφāĻ°ā§āĻ•āĻŋāĻŸā§‡āĻ•āϚāĻžāϰ āĻ…āύ⧇āĻ• āĻšāĻžāϞāĻ•āĻž āϧāϰāϪ⧇āϰāĨ¤ āϝāĻžāϰ āĻ•āĻžāϰāϪ⧇ āĻāϟāĻŋ āϕ⧋āύ āϰāĻŋāĻ•ā§ā§Ÿā§‡āĻ¸ā§āĻŸā§‡āϰ āĻŦāĻŋāĻĒāϰ⧀āϤ⧇ āĻĻā§āϰ⧁āϤ āϰ⧇āϏāĻĒāĻ¨ā§āϏ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āĻāϟāĻŋ āϰāĻŋāĻ•ā§ā§Ÿā§‡āĻˇā§āϟ āĻāϰ āϰ⧇āϏāĻĒāĻ¨ā§āϏ āĻĻ⧇āĻ“ā§ŸāĻžāϰ āϜāĻ¨ā§āϝ āĻāϟāĻŋ Node.js āĻāϰ non-blocking I/O āĻŽāĻĄā§‡āϞ⧇āϰ āωāĻĒāϰ āύāĻŋāĻ°ā§āĻ­āϰ āĻ•āϰ⧇āĨ¤ āϝāĻžāϰ āĻĢāϞ⧇ Express.js āϕ⧋āύ āĻĒā§āϰāĻ•āĻžāϰ āĻĒāĻžāϰāĻĢāϰāĻŽā§āϝāĻžāĻ¨ā§āϏ āĻĄā§āϰāĻĒ āĻ•āϰāĻž āĻ›āĻžā§œāĻžāχ āĻšāĻžāϜāĻžāϰ āĻšāĻžāϜāĻžāϰ āϰāĻŋāĻ•ā§ā§Ÿā§‡āĻˇā§āϟ āĻšā§āϝāĻžāĻ¨ā§āĻĄā§‡āϞ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤

Developer Experience:
Express.js āĻšāĻšā§āϛ⧇ āĻāĻ•āϟāĻŋ āϏāĻŋāĻŽā§āĻĒāϞ, āĻŽāĻŋāύāĻŋāĻŽāĻžāϞ āĻāĻŦāĻ‚ āĻĢā§āϞ⧇āĻ•ā§āϏāĻŋāĻŦāϞ āĻ“ā§Ÿā§‡āĻŦ āĻĢā§āϰ⧇āĻŽāĻ“ā§ŸāĻžāĻ°ā§āĻ•āĨ¤ āĻāϟāĻŋāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āϏāĻšāĻœā§‡āχ āϰāĻžāωāϟ āĻĄāĻŋāĻĢāĻžāχāύ āĻ•āϰāĻž āĻāĻŦāĻ‚ Middleware āϤ⧈āϰāĻŋ āĻ•āϰāĻž āϝāĻžā§ŸāĨ¤ Express.js āĻĒā§āϰ⧋āĻœā§‡āĻ•ā§āϟ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻĄā§‡āϭ⧇āϞāĻĒāĻžāϰāϰāĻž āϏāĻšāĻœā§‡āχ āϤāĻžāĻĻ⧇āϰ Backend application āĻŽā§‡āχāύāĻŸā§‡āχāύ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤

Community:
āĻ¸ā§āϟāĻžāϟāĻŋāĻ¸ā§āϟāĻžāϰ (Statista) āĻŽāϤ⧇, Express.js āϏāĻžāϰāĻžāĻŦāĻŋāĻļā§āĻŦ⧇ āĻŦā§āϝāĻŦāĻšā§ƒāϤ āĻ…āĻ¨ā§āϝāϤāĻŽ āĻāĻ•āϟāĻŋ Backend āĻĢā§āϰ⧇āĻŽāĻ“ā§ŸāĻžāĻ°ā§āĻ•āĨ¤ āĻŦāĻŋāĻļā§āĻŦ⧇āϰ ⧍ā§Ļ āĻļāϤāĻžāĻ‚āĻļ āĻĄā§‡āϭ⧇āϞāĻĒāĻžāϰāĻĻ⧇āϰ āĻĨ⧇āϕ⧇ āύ⧇āĻ“ā§ŸāĻž āϜāϰāĻŋāĻĒ⧇ āĻ āϤāĻĨā§āϝ āωāϠ⧇ āĻāϏ⧇āϛ⧇āĨ¤ āϏāĻžāϰāĻžāĻŦāĻŋāĻļā§āĻŦ⧇ Express.js āĻāϰ āĻŽāĻŋāϞāĻŋ⧟āύ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀ āφāϛ⧇āĨ¤ āĻāĻŽāύāĻ•āĻŋ Express.js āĻāϰ āĻ…āĻĢāĻŋāϏāĻŋ⧟āĻžāϞ āĻ—āĻŋāϟāĻšāĻžāĻŦ āϰāĻŋāĻĒā§‹āϜāĻŋāϟāϰāĻŋāϤ⧇ ā§Ŧā§Ļ āĻšāĻžāϜāĻžāϰ⧇āϰ āĻŦ⧇āĻļāĻŋ āĻ¸ā§āϟāĻžāϰ āĻ°ā§Ÿā§‡āϛ⧇āĨ¤

Documentation:
āĻ…āĻ¨ā§āϝāϤāĻŽ āĻāĻ•āϟāĻŋ āϜāύāĻĒā§āϰāĻŋ⧟ āĻĢā§āϰ⧇āĻŽāĻ“ā§ŸāĻžāĻ°ā§āĻ• āĻšāĻ“ā§ŸāĻž āĻ¸ā§āĻŦāĻ¤ā§āϤ⧇āĻ“ Express.js āĻāϰ āĻ…āĻĢāĻŋāϏāĻŋ⧟āĻžāϞ āĻĄāϕ⧁āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāύ āϤ⧇āĻŽāύ āĻāĻ•āϟāĻž āĻ­āĻžāϞ⧋ āύāĻžāĨ¤ āĻāϟāĻŋ āĻĨ⧇āϕ⧇ āĻĒā§āϰāĻœā§‡āĻ•ā§āϟ āϏ⧇āϟ āφāĻĒ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻ•āĻŋāϛ⧁ āĻ—āĻžāχāĻĄāϞāĻžāχāύ āĻĒāĻžāĻ“ā§ŸāĻž āϝāĻžā§ŸāĨ¤ āĻ•āĻŋāĻ¨ā§āϤ⧁ Express.js āĻāϰ āĻ…āĻĢāĻŋāϏāĻŋ⧟āĻžāϞ API āϰ⧇āĻĢāĻžāϰ⧇āĻ¨ā§āϏ⧇ Express.js āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āĻŦāĻŋāĻ¸ā§āϤāĻžāϰāĻŋāϤ āĻāĻ•āϟāĻŋ āϧāĻžāϰāĻŖāĻž āĻĒāĻžāĻ“ā§ŸāĻž āϝāĻžā§ŸāĨ¤ āϏ⧇āĻ–āĻžāύ⧇ Express.js āĻāϰ āϏāĻ•āϞ āϰāĻŋāϏ⧋āĻ°ā§āϏ āĻĻ⧇āĻ“ā§ŸāĻž āφāϛ⧇āĨ¤
āϤāĻžāĻ›āĻžā§œāĻžāĻ“ Stack Overflow āϤ⧇ Express.js āύāĻŋā§Ÿā§‡ āĻšāĻžāϜāĻžāϰ āĻšāĻžāϜāĻžāϰ āĻĒā§āϰāĻļā§āύ āĻ“ āωāĻ¤ā§āϤāϰ āĻĻ⧇āĻ“ā§ŸāĻž āφāϛ⧇āĨ¤
āĻāϏāĻŦ āĻ•āĻžāϰāϪ⧇ āχāωāϜāĻžāϰāϰāĻž Express.js āĻĒā§āϰāĻœā§‡āĻ•ā§āĻŸā§‡ āύāĻŋāĻ°ā§āĻŦāĻŋāĻ˜ā§āύ⧇ āĻ•āĻžāϜ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤

Integration:
Express.js āĻĢā§āϰ⧇āĻŽāĻ“ā§ŸāĻžāĻ°ā§āϕ⧇ āϏāĻšāĻœā§‡āχ āĻ…āĻ¨ā§āϝāĻžāĻ¨ā§āϝ āĻŸā§‡āĻ•āύ⧋āϞāϜāĻŋ āϝ⧁āĻ•ā§āϤ āĻ•āϰāĻž āϝāĻžā§ŸāĨ¤ āĻāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āϏāĻšāĻœā§‡ āϝ⧇āϕ⧋āύ⧋ āĻĄāĻžāϟāĻžāĻŦ⧇āχāϜ āϝ⧇āĻŽāύ: MySQL, PostgreSQL, MongoDB āχāĻ¤ā§āϝāĻžāĻĻāĻŋ āĻ•āĻžāύ⧇āĻ•ā§āϟ āĻ•āϰāĻž āϝāĻžā§ŸāĨ¤ āϤāĻžāĻ›āĻžā§œāĻž āĻ•āĻŋāϛ⧁ āϏāĻšāϜ āĻĒāĻĻā§āϧāϤāĻŋ āĻ…āύ⧁āϏāϰāĻŖ āĻ•āϰ⧇ Express.js āĻĒā§āϰ⧋āĻœā§‡āĻ•ā§āĻŸā§‡ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āϕ⧋āĻĄāĻŋāĻ‚ āϟ⧁āϞāϏ āϝ⧇āĻŽāύ- Prettier, ESlint āχāĻ¤ā§āϝāĻžāĻĻāĻŋ āϝ⧁āĻ•ā§āϤ āĻ•āϰāĻž āϝāĻžā§ŸāĨ¤

Express.js āĻāϰ Key Features:
Define Restful API endpoints:
Express.js āĻāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āϖ⧁āĻŦ āϏāĻšāĻœā§‡āχ API āϰāĻžāωāϟ āϤ⧈āϰāĻŋ āĻ•āϰāĻž āϝāĻžā§ŸāĨ¤ Express.js āĻāϰ app āĻ…āĻŦāĻœā§‡āĻ•ā§āϟ āĻāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ HTTP method āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āύāĻŋāĻšā§‡āϰ āĻĒāĻĻā§āϧāϤāĻŋāϤ⧇ āϰāĻžāωāϟ āĻĄāĻŋāĻĢāĻžāχāύ āĻ•āϰāĻž āϝāĻžā§Ÿ:
app.get(): GET Request
app.post(): POST Request
app.put(): PUT Request
app.patch(): PATCH Request
app.delete(): DELETE Request
āϰāĻžāωāϟāĻŋāĻ‚ā§Ÿā§‡āϰ āĻāχ āĻŽā§‡āĻĨāĻĄāϗ⧁āϞ⧋ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāϟāĻžāϰ āĻšāĻŋāϏ⧇āĻŦ⧇ āĻāĻ•āϟāĻŋ API endpoint string āĻ“ āĻāĻ•āϟāĻŋ Callback Function āϰāĻŋāϏāĻŋāĻ­ āĻ•āϰ⧇āĨ¤ āϝāĻ–āύ āύāĻŋāĻ°ā§āϧāĻžāϰāĻŋāϤ API endpoint string āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āϕ⧋āύ āϰāĻŋāĻ•ā§ā§Ÿā§‡āĻˇā§āϟ āĻ•āϰāĻž āĻšā§Ÿ āϤāĻ–āύ āϏ⧇āχ endpoint string āĻāϰ āϏāĻžāĻĨ⧇ āĻĨāĻžāĻ•āĻž Callback Function āϟāĻŋ āĻāĻ•ā§āϏāĻŋāĻ•āĻŋāωāϟ āĻšā§ŸāĨ¤
āύāĻŋāĻšā§‡ Express.js āϰāĻžāωāϟ āĻĄāĻŋāĻĢāĻžāχāύ āĻ•āϰāĻžāϰ āĻāĻ•āϟāĻŋ āωāĻĻāĻžāĻšāϰāĻŖ āĻĻ⧇āĻ“ā§ŸāĻž āĻšāϞ⧋:
app.get('/api/users/:id', (req, res) => {
// read the id parameter from the URL
const userId = req.params.id
// retrieve users
const users = getUsers(userId) // getUsers() is a function for retrieve the user data
res.json({ user: user })
})

Database āĻāϰ āϏāĻžāĻĨ⧇ āĻ•āĻžāύ⧇āĻ•ā§āϟ āĻ•āϰāĻž:
āĻĄāĻžāϟāĻž āϏāĻ‚āϰāĻ•ā§āώāĻŖ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ Backend Development āĻāϰ āϏāĻŦāĻšā§‡ā§Ÿā§‡ āĻ…āĻĒāϰāĻŋāĻšāĻžāĻ°ā§āϝ āωāĻĒāĻžāĻĻāĻžāύ āĻšāĻšā§āϛ⧇ Database. āϤāĻžāχ Database āĻ•āĻžāύ⧇āĻ•ā§āϟ āĻ•āϰāĻž āϝ⧇āϕ⧋āύ Backend āĻĢā§āϰ⧇āĻŽāĻ“ā§ŸāĻžāĻ°ā§āϕ⧇āϰ āϜāĻ¨ā§āϝ āϖ⧁āĻŦāχ āϗ⧁āϰ⧁āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖāĨ¤ Express.js āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āϝ⧇āϕ⧋āύ āϧāϰāύ⧇āϰ Database āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇āϰ āϏāĻžāĻĨ⧇ āĻ•āĻžāύ⧇āĻ•ā§āϟ āĻ•āϰāĻž āϝāĻžā§ŸāĨ¤ āϤāĻžāĻ›āĻžā§œāĻž Database āϏāĻšāĻœā§‡ āĻŽā§āϝāĻžāύ⧇āϜ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ Express.js āφāĻŽāĻžāĻĻ⧇āϰ āĻĻ⧁āχ āϧāϰāύ⧇āϰ āϞāĻžāχāĻŦā§āϰ⧇āϰāĻŋ āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰ⧇āĨ¤ āĻāϗ⧁āϞ⧋ āĻšāĻšā§āϛ⧇ ORM (Object Relational Mapping) āϝāĻž āĻŽā§āϞāϤ Sequelize Database āĻāϰ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āĻšā§Ÿ āĻāĻŦāĻ‚ āĻ…āĻ¨ā§āϝāϟāĻŋ āĻšāĻšā§āϛ⧇ ODM (Object Document Mapping) āϝāĻž NoSQL Database āĻāϰ āϜāĻ¨ā§āϝ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āĻšā§ŸāĨ¤
Middleware Modules:
Express.js āĻāϰ Middleware āĻĢāĻžāύāĻļāĻ‚āϗ⧁āϞ⧋āϰ āĻŽāĻ§ā§āϝ⧇ āϤāĻŋāύāϟāĻŋ āϜāĻŋāύāĻŋāϏ⧇āϰ āĻāĻ•ā§āϏ⧇āϏ āĻĨāĻžāϕ⧇āĨ¤ req (Request), res (Response) āĻāĻŦāĻ‚ next Function. āϝāĻ–āύ āϕ⧋āύ API endpoint āĻ āĻšāĻŋāϟ āĻ•āϰāĻž āĻšā§Ÿ Middleware āϤāĻ–āύ āϏ⧇āχ Request āĻāϰ āĻŦāĻŋāĻĒāϰ⧀āϤ⧇ āĻāĻ•āϟāĻŋ Response āĻĻāĻŋā§Ÿā§‡ āĻĨāĻžāϕ⧇āĨ¤ next() function āĻāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āĻāĻ•āϟāĻŋ Middleware āĻāϰ āĻ•āĻžāϜ āĻļ⧇āώ āĻšāϞ⧇ āĻĒāϰāĻŦāĻ°ā§āϤ⧀ Middleware āĻ āϝāĻžāĻ“ā§ŸāĻž āϝāĻžā§ŸāĨ¤
āύāĻŋāĻšā§‡ Middleware āĻāϰ āĻāĻ•āϟāĻŋ āωāĻĻāĻžāĻšāϰāĻŖ āĻĻ⧇āĻ“ā§ŸāĻž āĻšāϞ⧋:
const exampleOfMiddleware = (req, res, next) => {
// log the body of the request
console.log(req.body)
// call the next middleware
next()
}

Cookies āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāĻŦāĻ‚ Session Management:
HTTP āĻšāĻšā§āϛ⧇ āĻāĻ•āϟāĻŋ Stateless āĻĒā§āϰāĻŸā§‹āĻ•āϞāĨ¤ āϝāĻžāϰ āĻŽāĻžāύ⧇ āĻšāĻšā§āϛ⧇ āĻāϟāĻŋ āĻ•ā§āϞāĻžā§Ÿā§‡āĻ¨ā§āĻŸā§‡āϰ āϏāĻžāĻĨ⧇ āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇āϰ āĻ•āĻŽāĻŋāωāύāĻŋāϕ⧇āĻļāύ⧇āϰ āϕ⧋āύ āϤāĻĨā§āϝ āϜāĻŽāĻž āϰāĻžāϖ⧇ āύāĻžāĨ¤ āĻāχ āϏ⧀āĻŽāĻžāĻŦāĻĻā§āϧāϤāĻž āĻĨ⧇āϕ⧇ āĻŦ⧇āϰ āĻšāĻ“ā§ŸāĻžāϰ āϜāĻ¨ā§āϝ Cookies āĻāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻļ⧁āϰ⧁ āĻšā§ŸāĨ¤ Cookies āĻāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āĻ•ā§āϞāĻžā§Ÿā§‡āĻ¨ā§āϟ āĻ“ āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇āϰ āĻŽāĻ§ā§āϝāĻžāĻ•āĻžāϰ Request āĻāϰ āĻ¸ā§āĻŸā§‡āϟāϗ⧁āϞ⧋ āĻŽā§‡āχāύāĻŸā§‡āχāύ āĻ•āϰāĻž āϝāĻžā§ŸāĨ¤ āĻāĻ›āĻžā§œāĻžāĻ“ Cookies āĻāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āχāωāϜāĻžāϰ⧇āϰ āϏ⧇āĻļāύ⧇āϰ āĻŸā§āĻ°â€ā§āϝāĻžāĻ• āϰāĻžāĻ–āĻž āϝāĻžā§ŸāĨ¤
Cookies āĻŦā§āϝāĻŦāĻšāĻžāϰ⧇āϰ āĻāϰ āϜāĻ¨ā§āϝ Express.js āĻāϰ āϜāύāĻĒā§āϰāĻŋ⧟ āĻĒā§āϝāĻžāϕ⧇āϜ āĻšāĻšā§āϛ⧇ cookie-parser. āĻāϟāĻŋ Request Header āĻ āĻĨāĻžāĻ•āĻž Cookies āϕ⧇ Parse āĻ•āϰ⧇ req.cookies āĻāϰ āĻ­āĻŋāϤāϰ āĻĒā§‡ā§ŸāĻžāϰ⧇ āϤāĻž āϏāĻ‚āϰāĻ•ā§āώāĻŖ āĻ•āϰ⧇āĨ¤
āύāĻŋāĻšā§‡ āĻāĻ•āϟāĻŋ āωāĻĻāĻžāĻšāϰāĻŖ āĻĻ⧇āĻ“ā§ŸāĻž āĻšāϞ⧋:
const express = require('express')
const cookieParser = require('cookie-parser')
const app = express()
app.use(cookieParser())
app.post('/set-cookie', (req, res) => {
res.cookie('user', 'Nazmus Sakib')
res.send('Cookie set!')
})

app.get('/get-user', (req, res) => {
const username = req.cookies.user // "Nazmus Sakib"
res.send(`Hello, ${username}!`) // "Hello, Nazmus Sakib"
})

Error Handling:
Error Handling āĻāϰ āϜāĻ¨ā§āϝ Express.js āĻĄāĻŋāĻĢāĻ˛ā§āϟāĻ­āĻžāĻŦ⧇ āφāĻŽāĻžāĻĻ⧇āϰ āĻāĻ•āϟāĻŋ Middleware āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰ⧇āĨ¤ āϏāĻžāϧāĻžāϰāĻŖ Middleware āϗ⧁āϞ⧋āϤ⧇ āϤāĻŋāύāϟāĻŋ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāϟāĻžāϰ āĻĨāĻžāĻ•āϞ⧇āĻ“ āĻāχ Error Handling Middleware āϟāĻŋāϤ⧇ āϚāĻžāϰāϟāĻŋ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāϟāĻžāϰ āĻĨāĻžāϕ⧇āĨ¤ āϏ⧇āϗ⧁āϞ⧋ āĻšāĻšā§āϛ⧇- err (Error), req (Request), res (Response) āĻāĻŦāĻ‚ next function.
āύāĻŋāĻšā§‡ Error Handling Middleware āĻāϰ āĻāĻ•āϟāĻŋ āωāĻĻāĻžāĻšāϰāĻŖ āĻĻ⧇āĻ“ā§ŸāĻž āĻšāϞ⧋-
app.use((err, req, res, next) => {
console.error(err)
res.status(500).json('Something went wrong!')
})

User Authentication:
āĻāĻ•āϟāĻŋ Secure Web Application āϤ⧈āϰāĻŋāϰ āϜāĻ¨ā§āϝ User Authentication āϖ⧁āĻŦāχ āϗ⧁āϰ⧁āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖāĨ¤ Express.js Authentication āĻāϰ āϜāĻ¨ā§āϝ Client-side token based authentication āĻāĻŦāĻ‚ Server-side session-based authentication āĻāχ āĻĻ⧁āχ āϧāϰāύ⧇āϰ āĻĒāĻĻā§āϧāϤāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇āĨ¤

āĻāχ āĻŦā§āϞāĻ—āϟāĻŋāϤ⧇ āφāĻŽāĻŋ āĻšā§‡āĻˇā§āϟāĻž āĻ•āϰ⧇āĻ›āĻŋ Node.js āĻāĻŦāĻ‚ āĻāϰ āϜāĻ¨ā§āϝāĻĒā§āϰāĻŋ⧟ āĻĢā§āϰ⧇āĻŽāĻ“ā§ŸāĻžāĻ°ā§āĻ• Express.js āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āĻŦāĻŋāĻ¸ā§āϤāĻžāϰāĻŋāϤ āĻāĻ•āϟāĻŋ āϧāĻžāϰāĻŖāĻž āĻĻ⧇āĻ“ā§ŸāĻžāϰ āĻšā§‡āĻˇā§āϟāĻž āĻ•āϰ⧇āĻ›āĻŋāĨ¤ āφāϰ⧋ āĻ­āĻžāϞ⧋āĻ­āĻžāĻŦ⧇ āϜāĻŋāύāĻŋāϏāϗ⧁āϞ⧋ āĻŦā§‹āĻāĻžāϰ āϜāĻ¨ā§āϝ āφāĻŽāĻžāĻĻ⧇āϰ āĻĄāϕ⧁āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāύāϗ⧁āϞ⧋ āĻ­āĻžāϞ⧋āĻ­āĻžāĻŦ⧇ āĻĻ⧇āĻ–āϤ⧇ āĻšāĻŦ⧇āĨ¤ Node.js āĻāĻŦāĻ‚ Express.js āϕ⧇ āύāĻŋā§Ÿā§‡ āĻ•āϰāĻž āĻ…āĻ¨ā§āϝāĻžāĻ¨ā§āϝ āĻŦā§āϞāĻ—āϗ⧁āϞ⧋ āĻĒ⧜āϤ⧇ āĻšāĻŦ⧇āĨ¤ āφāĻļāĻž āĻ•āϰāĻ›āĻŋ āĻāχ āĻŦā§āϞāĻ—āϟāĻŋ āĻĒāϰ⧇ Node.js āĻ“ āĻāϰ āĻĢā§āϰ⧇āĻŽāĻ“ā§ŸāĻžāĻ°ā§āĻ• Express.js āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āĻŽā§‹āϟāĻžāĻŽā§‹āϟāĻŋ āĻāĻ•āϟāĻŋ āϧāĻžāϰāĻŖāĻž āĻĒāĻžāĻ“ā§ŸāĻž āϝāĻžāĻŦ⧇āĨ¤

āϝāĻĻāĻŋāĻ“ āφāĻŽāĻžāϰ āϞ⧇āĻ–āĻžāϞ⧇āĻ–āĻŋāϰ āĻ…āĻ­ā§āϝāĻžāϏ āφāϗ⧇ āĻĨ⧇āϕ⧇āχ āĻ›āĻŋāϞ⧋āĨ¤ āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻŦā§āϞāĻ—āϟāĻŋ āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āύāĻŋāĻœā§‡ āĻ•āϰāĻŋāύāĻŋāĨ¤ āĻ…āĻ¨ā§āϝāĻžāĻ¨ā§āϝ āĻ•ā§Ÿā§‡āĻ•āϟāĻŋ āĻŦā§āϞāϗ⧇āϰ āϏāĻžāĻšāĻžāĻ¯ā§āϝ āύāĻŋāϤ⧇ āĻšā§Ÿā§‡āϛ⧇āĨ¤ āĻ•āĻŋāĻ¨ā§āϤ⧁ āϞāĻŋāĻ–āϤ⧇ āĻšā§Ÿā§‡āϛ⧇ āφāĻŽāĻžāϕ⧇āχāĨ¤ āύāĻŋāĻšā§‡ āϝ⧇āϏāĻŦ āϜāĻžā§ŸāĻ—āĻž āĻĨ⧇āϕ⧇ āϰāĻŋāϏ⧋āĻ°ā§āϏ āĻ•āĻžāϞ⧇āĻ•ā§āϟ āĻ•āϰ⧇āĻ›āĻŋ āϏ⧇āϗ⧁āϞ⧋āϰ āϰ⧇āĻĢāĻžāϰ⧇āĻ¨ā§āϏ āĻĻāĻŋā§Ÿā§‡ āĻĻāĻŋāϞāĻžāĻŽ-
https://www.freecodecamp.org/news
https://medium.com/
https://blog.logrocket.com/
Node.js āĻāϰ āωāĻĒāϰ āϤ⧈āϰāĻŋ āĻšāĻ“ā§ŸāĻž āĻĄāϕ⧁āĻŽā§‡āĻ¨ā§āϟāϰāĻŋ-
https://www.youtube.com/results?search_query=node+js+history

freeCodeCamp.org Browse thousands of programming tutorials written by experts. Learn Web Development, Data Science, DevOps, Security, and get developer career advice.

Want your school to be the top-listed School/college in Vadodara?
Click here to claim your Sponsored Listing.

Culinary Team

Attire

Telephone

Address


Vadodara
391760