/Backend-Dev-Fundamentals

Explore the fundamentals of Backend Development using JavaScript, NodeJS and ExpressJS

Primary LanguageJavaScriptMIT LicenseMIT

Backend-Dev-Fundamentals

Explore the fundamentals of Backend Development using JavaScript, NodeJS and ExpressJS.

Types of Web Development

  1. Front End Development
  2. Back End Development
  3. Full Stack Development

Front-End Development

  • Front End refers to what you actually see on the website in a browser.
  • It is also referred as Client Side Development.
  • Front End developers are responsible for everything that you see when you’re navigating around the Internet.

Back-End Development

  • Back End refers to what actually happens under the hood on the web servers.
  • It is also referred as Server Side Development.
  • Back End developers are responsible for the architecture, databases, database transactions and much more.

Full-Stack Development

  • Full Stack development is the combination of Front End and Back End development.
  • Full Stack developers can be referred as jacks-of-all-trades such as MERN, MEAN and MEVN stack developers.

Client Server Architecture

  • It is a network architecture in which clients request though a browser and receive resources from a web server.
  • The browser then renders the web pages using DOM interpreter, CSS interpreter and JS Engine.

HTTP Request Methods

Method Operation
GET Read
POST Create
PUT Update/Replace
DELETE Delete

HTTP Status Code

  • 1XX: Informational
  • 2XX: Success
  • 3XX: Redirection
  • 4XX: Client Error
  • 5XX: Server Error

What is API?

  • Stands for Application Programming Interface
  • Connection between different computer programs
  • Allows two different applications to talk to each other

What is JSON?

  • Stands for JavaScript Object Notation
  • It is a lightweight data-interchange format
  • It is plain text written in JavaScript object notation
  • It is used to send data between computers
  • It is language independent

What is JavaScript?

  • High level, interpreted programming language
  • Runs on Browser as well as on Server
  • Conforms to ECMAScript specification
  • Multi-paradigm, Single threaded
  • Supports Object oriented and Functional Programming style

Why should we use JavaaScript?

  • Programming language of the browser
  • Build interactive UI using JS frameworks like React, Vue and Angular
  • Builds very fast Server side and Full Stack applications
  • Can also be used in Mobile development using React Native, Ionic
  • Can also be used in Desktop App development using Electron JS

What is Node.js?

  • Open-source, cross-platform, back-end - JavaScript runtime environment
  • Fast, efficient and highly scalable
  • Runs on the V8 JavaScript engine developed by Google
  • Allows us to run JavaScript code on the server
  • Event driven, non-blocking I/O model
  • Javascript Everywhere on the front-end and back-end

What is NPM?

  • NPM stands for Node Package Manager
  • Install 3rd party packages such as frameworks, libraries and tools
  • Packages are stored in the node_modules folder
  • All dependencies are listed in package.json file
  • NPM scripts are used to run different tasks

What is ExpressJS?

  • Fast, Flexible and Minimalistic Web application framework
  • Makes building web application with Node.js much easier
  • Extremely light, fast, open-source and most popular
  • Used for both server rendered apps as well as API
  • Full control of request and response
  • Great to use with client side frameworks as it’s all JavaScript

Route Handling - ExpressJS

  • Handling requests and routes is very fast and simple
  • Simple syntax - app.get(), app.post(), app.put(), app.delete() and so on
  • Render a HTML template, send JSON/file, redirect URL and much more
  • Use any database like MongoDB, PostgreSQL and so on
  • Access URL params, Query strings, Base URL and more
  • We can store routes in separate files and export using Express Router

What is REST API?

  • REST stands for Representational State Transfer
  • It is a set of architectural constraints
  • It transfers representation of the state of a resource to the requester
  • General formats: JSON, HTML, plain text and more
  • Mostly used for Internet of Things (IoT), Mobile - Development and Web Development

Questions & Feedback

Please reach out to me on LinkedIn or Twitter if you need any help or want to share your feedback.

Did you like the content?

Do support us by giving a ⭐ to the repository! :-)

License

This repository is published under the MIT license.