Node.js® is a free, open-source, cross-platform JavaScript runtime environment that lets developers create servers, web apps, command line tools and scripts.
Express is a fast, unopinionated, minimalist web framework for Node.js, providing a robust set of features for web and mobile applications.
MongoDB is a document database with the scalability and flexibility that you want with the querying and indexing that you need. MongoDB is an open-source database that stores data in (BSON), a JSON-like documents. It's a popular choice for modern web and mobile applications.
Hypertext Transfer Protocol (HTTP) is an application-layer protocol for transmitting hypermedia documents, such as HTML. It was designed for communication between web browsers and web servers, but it can also be used for other purposes, such as machine-to-machine communication, programmatic access to APIs, and more.
NPM is a package manager for the JavaScript programming language maintained by npm, Inc., a subsidiary of GitHub. npm is the default package manager for the JavaScript runtime environment Node.js and is included as a recommended feature in the Node.js installer.
A web session is a series of contiguous actions by a visitor on an individual website within a given time frame. This could include your search engine searches, filling out a form to receive content, scrolling on a website page, adding items to a shopping cart, researching airfare, or which pages you viewed on a single website. Any interaction that you have with a single website is recorded as a web session to that website property.
A cookie (also known as a web cookie or browser cookie) is a small piece of data a server sends to a user's web browser. The browser may store cookies, create new cookies, modify existing ones, and send them back to the same server with later requests. Cookies enable web applications to store limited amounts of data and remember state information; by default the HTTP protocol is stateless.
EJS is a simple templating language that lets you generate HTML markup with plain JavaScript. No religiousness about how to organize things.
Routing defines how the client requests are handled by the application endpoints. Routing in Node refers to the process of determining how an application responds to client requests to different endpoints (URLs). In a web application, these endpoints typically correspond to different pages or functionalities within the application. Node.js, along with frameworks like Express, provides a way to define routes, which are responsible for handling specific HTTP requests and sending back appropriate responses.
A database is a structured collection of data that can be stored, organized, and accessed electronically. Databases can store information about people, products, orders, images, audio, video and more.
In simple terms, authentication is the process of verifying who a user is, while authorization is the process of verifying what they have access to. Comparing these processes to a real-world example, when you go through security in an airport, you show your ID to authenticate your identity. Then, when you arrive at the gate, you present your boarding pass to the flight attendant, so they can authorize you to board your flight and allow access to the plane.
A library help us to hash(secure) passwords.
JSON Web Tokens are an open, industry standard RFC 7519 method for representing claims securely between two parties. JWT.IO allows you to decode, verify and generate JWT.
Middleware is a layer of software that sits between the core application logic and the server, acting as a bridge for incoming requests and outgoing responses. It can intercept and process these requests and responses, enabling developers to perform various tasks or add functionalities during the request-response cycle..
Multer is a node.js middleware for handling multipart/form-data, which is primarily used for uploading files. It is written on top of busboy for maximum efficiency. NOTE: Multer will not process any form which is not multipart (multipart/form-data).
By using EJS templates, we can create reusable components or partials that can be included in multiple pages. This promotes code modularity and reduces duplication in our web applications.