Backend has 2 major components:-
1. A Programming Language:- Java, javascript, php, golang, c++ etc. ( Almost all these languages use some framework or library).
2. A Database:- Mongo, MySQL, Postgres, sqlite etc. (Similarly, you will use an ORM (Object-Relational Mapping) or ODM (Object Document Mapping) when interacting with databases. Names like Prisma and Mongoose will come up).
Frontend (Browser and Mobile):Users interact with the application through the browser or mobile app.
API (Application Programming Interface):Acts as an intermediary, allowing the frontend to communicate with the backend server.
Backend:Processes requests from the frontend, interacts with the database, and sends responses back.
Contains the logic and functions needed to handle specific tasks like user authentication.
Database:Stores application data and is located in another continent for better performance and redundancy.
When dealing with backend development, you primarily handle three types of tasks:
1.Data Handling:
- The most common task in backend development is processing data received from the frontend.
- Example: When a user tries to log in, the frontend sends the username and password to the backend. The backend verifies these credentials against the database and sends a response back to the frontend.
2.File Handling:
- Backends often need to handle file uploads and downloads. This can include storing files on the server or retrieving them for user access.
- Example: A user uploads a profile picture. The backend saves this image to the server and updates the user's profile to reference the uploaded file.
3.Third-Party API Integration:
- Backends frequently interact with third-party services to extend functionality.
- Example: To send an email confirmation, the backend may use an email service provider's API. The backend sends the necessary data (recipient email, subject, message body) to the third-party API, which then handles the email sending.
In modern JavaScript environments, there are several options for backend development beyond the traditional Node.js. Here are the key points:
Multiple Runtime Environments:
- Historically, learning backend development in JavaScript often started with Node.js.
- Nowadays, there are alternative runtime environments like Deno and Bun.
- You can even mix environments, using part of your backend on Node.js and part on Deno or Bun.
The file structure I am referring to is a common organization pattern used in backend development, regardless of the specific programming language or framework. Here's a breakdown of the typical components based on the content you provided:
1. Root Directory
index.js or main.js: This is the entry point of your application. It’s where you initialize and start your application, connect to the database, and set up basic configurations.
2. Folders and Files
app.js:This file typically contains the main application logic and configuration settings, such as middleware setup, routes configuration, and application-level settings.
config/:
Configuration Files:These files include environment-specific settings such as database connections, API keys, and other constants.
Example: config.js, databaseConfig.js.
constants/:
constants.js:Contains immutable values or configurations used throughout the application. This can include things like status codes, roles, or types. For instance, if you're building a booking application, constants might include seat types (e.g., window, middle, aisle).
models/:
Model Definitions:Defines the schema for the data stored in your database. This is where you set up how your data is structured and validated.
Example:userModel.js, productModel.js.
controllers/:
Controller Logic: Contains functions or methods that handle business logic. Controllers manage the requests and responses, processing data and interacting with models.
Example: userController.js, productController.js.
routes/:
Routing Definitions:Maps URLs to specific controller actions. This determines how different HTTP requests (GET, POST, etc.) are routed to the appropriate controllers.
Example:userRoutes.js, productRoutes.js.
middlewares/:
Middleware Functions:Contains functions that execute during the request-response cycle, such as authentication checks, logging, or data validation.
Example: authMiddleware.js, errorHandlingMiddleware.js.
utils/:
Utility Functions: Houses reusable functions or helpers used across the application, such as email sending functions or file upload handlers.
ExampleemailHelper.js, fileUploadHelper.js.
database/:
Database Initialization:Contains scripts or configurations related to database setup and connections.
Example:dbConnection.js, dbSetup.js.
`views`/ (if applicable):
Template Files:Used if the application includes server-side rendering. This directory contains the view templates or files used to generate HTML content.
Example: index.ejs, userProfile.ejs.
3. Other Files
- package.json: Manages dependencies and scripts for the project.
- .env: Stores environment variables like database credentials or API keys.
- .gitignore: Specifies which files and directories should be ignored by version control
Top comments (0)