<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: ozenero.com</title>
    <description>The latest articles on DEV Community by ozenero.com (@ozenero).</description>
    <link>https://dev.to/ozenero</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F534363%2Fc49c15cb-28c5-4b3d-bb30-1a572599d085.png</url>
      <title>DEV Community: ozenero.com</title>
      <link>https://dev.to/ozenero</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ozenero"/>
    <language>en</language>
    <item>
      <title>Reactjs Nodejs MongoDB CRUD Example – MERN Stack Application</title>
      <dc:creator>ozenero.com</dc:creator>
      <pubDate>Sun, 03 Jan 2021 15:02:00 +0000</pubDate>
      <link>https://dev.to/ozenero/reactjs-nodejs-mongodb-crud-example-mern-stack-application-4ngn</link>
      <guid>https://dev.to/ozenero/reactjs-nodejs-mongodb-crud-example-mern-stack-application-4ngn</guid>
      <description>&lt;h1&gt;
  
  
  Reactjs Nodejs MongoDB CRUD Example – MERN Stack Application
&lt;/h1&gt;

&lt;p&gt;Tutorial at: &lt;a href="https://loizenai.com/reactjs-nodejs-mongodb-crud/" rel="noopener noreferrer"&gt;Reactjs Nodejs MongoDB CRUD Example&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the tutorial, I introduce how to build an “React.js Nodejs CRUD MongoDB Example” project with the help of Ajax to POST/GET/PUT/DELETE requests with step by step coding examples:&lt;/p&gt;

&lt;p&gt;– Nodejs project produces CRUD RestAPIs with MongoDB database using the supporting of Mongoose ODM.&lt;br&gt;
– React.js project will consume the Nodejs CRUD RestAPIs by Ajax then show up on Reactjs component’s views.&lt;/p&gt;

&lt;h2&gt;
  
  
  List to do - Reactjs Nodejs MongoDB CRUD Example:
&lt;/h2&gt;

&lt;p&gt;– I draw a fullstack overview Diagram Architecture from React.js Frontend to MongoDB database through Nodejs RestAPI backend.&lt;br&gt;
– Develop Nodejs CRUD RestAPIs with the supporting of Mongoose ODM.&lt;br&gt;
– Implement Reactjs CRUD application with Ajax fetching APIs to do CRUD request (Post/Get/Put/Delete) to Nodejs Backend APIs.&lt;br&gt;
– I create a testsuite with a number of integrative testcases with CRUD RestAPI requests from Reactjs to do CRUD requests to Nodejs RestAPIs Server and save/retrieve data to MongoDB database.&lt;/p&gt;

&lt;h2&gt;
  
  
  Overall Architecture System: Reactjs + Nodejs + MongoDB
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F11%2FReact.js-Nodejs-MongoDB-Diagram-Architecture.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F11%2FReact.js-Nodejs-MongoDB-Diagram-Architecture.png" alt="Reactjs + Nodejs + MongoDB system"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;We build a backend: Nodejs CRUD Application with MongoDB that provides RestAPIs for POST/GET/PUT/DELETE data entities and store them in MongoDB database.&lt;/li&gt;
&lt;li&gt;We implement React.js CRUD Application that use Ajax to interact (call/receive requests) with Nodejs CRUD application and display corresponding data in Reactjs Component.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Nodejs MongoDB CRUD Design Application
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F11%2FNodejs-MongoDB-CRUD-Example.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F11%2FNodejs-MongoDB-CRUD-Example.png" alt="Nodejs MongoDB CRUD Design Application"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We have 4 main blocks for the application:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;For building RestAPIs in Nodejs application, we use Express framework.&lt;/li&gt;
&lt;li&gt;For interacting with database MongoDB, we use Mongoose ODM.&lt;/li&gt;
&lt;li&gt;We define APIs URL in router.js file&lt;/li&gt;
&lt;li&gt;We implement how to process each API URL in controller.js file&lt;/li&gt;
&lt;li&gt;We use Bootstrap and JQuery Ajax to implement frontend client.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Reactjs CRUD Application Design
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F11%2FReactjs-CRUD-RestAPI-Application-Frontend-Architecture-Diagram-4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F11%2FReactjs-CRUD-RestAPI-Application-Frontend-Architecture-Diagram-4.png" alt="Reactjs CRUD Application design"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;React.js components let you split the UI into independent, reusable pieces, and think about each piece in isolation.&lt;/li&gt;
&lt;li&gt;Ajax is used by Reactjs component to fetch (post/put/get/delete) data from remote restapi by http request&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Reactjs CRUD Application defines 5 components:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Home.js is used serve as the landing page for your app.&lt;/li&gt;
&lt;li&gt;AppNavbar.js is used to establish a common UI feature between components.&lt;/li&gt;
&lt;li&gt;CustomerList.js is used to show all customers in the web-page&lt;/li&gt;
&lt;li&gt;CustomerEdit.js is used to modify the existed customer&lt;/li&gt;
&lt;li&gt;App.js uses React Router to navigate between components.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Integrative Project Goal
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F11%2FProject-Goal-Customer-List-3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F11%2FProject-Goal-Customer-List-3.png" alt="Integrative Project Goal"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Tutorial: &lt;a href="https://loizenai.com/reactjs-nodejs-mongodb-crud/" rel="noopener noreferrer"&gt;Reactjs Nodejs MongoDB CRUD Example&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Related posts - Reactjs Nodejs MongoDB CRUD Example
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://loizenai.com/integrate-reactjs-nodejs-tutorial/" rel="noopener noreferrer"&gt;How to Integrate Reactjs with Nodejs Tutorial&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://loizenai.com/reactjs-nodejs-crud-mysql/" rel="noopener noreferrer"&gt;Reactjs Node.js MySQL CRUD Example&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://loizenai.com/reactjs-nodejs-postgresql-example/" rel="noopener noreferrer"&gt;Reactjs Nodejs PostgreSQL Example&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://loizenai.com/reactjs-nodejs-mongodb-crud/" rel="noopener noreferrer"&gt;Reactjs Nodejs MongoDB CRUD Example – MERN Stack Application&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Youtube - Reactjs Nodejs MongoDB CRUD Example
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=Tn4Dfztkvww&amp;amp;t=49s" rel="noopener noreferrer"&gt;https://www.youtube.com/watch?v=Tn4Dfztkvww&amp;amp;t=49s&lt;/a&gt;&lt;/p&gt;

</description>
      <category>react</category>
      <category>node</category>
      <category>mongodb</category>
      <category>mern</category>
    </item>
    <item>
      <title>Django Angular MySQL CRUD Example</title>
      <dc:creator>ozenero.com</dc:creator>
      <pubDate>Sun, 03 Jan 2021 07:46:58 +0000</pubDate>
      <link>https://dev.to/ozenero/django-angular-mysql-crud-example-12b6</link>
      <guid>https://dev.to/ozenero/django-angular-mysql-crud-example-12b6</guid>
      <description>&lt;h1&gt;
  
  
  Django Angular MySQL CRUD Example
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://loizenai.com/django-angular-mysql-crud-example/"&gt;https://loizenai.com/django-angular-mysql-crud-example/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--WEK-VgJd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://loizenai.com/wp-content/uploads/2020/12/Angular-Django-CRUD-MySQL-Example.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--WEK-VgJd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://loizenai.com/wp-content/uploads/2020/12/Angular-Django-CRUD-MySQL-Example.png" alt="Django Angular MySQL CRUD Example"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;” Tutorial: Django Angular MySQL CRUD Example – Fullstack: Angular + Django Rest Framework + MySQL. ”&lt;/p&gt;

&lt;p&gt;Django is a Python-based free and open-source web framework that follows the model-template-view architectural pattern. Angular is a TypeScript-based open-source web application framework led by the Angular Team at Google. In the tutorial, I introduce how to build a Angular Django CRUD RestAPIs Fullstack Project with POST/GET/PUT/DELETE requests using Django Rest Framework and MySQL database with step by step coding examples.&lt;/p&gt;

&lt;h2&gt;
  
  
  Architecture – Django Angular CRUD Example
&lt;/h2&gt;

&lt;p&gt;Here is an overview of Architecture Design for Django Angular CRUD Example with Django Rest Framework and MySQL:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--5W8ctYLp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://loizenai.com/wp-content/uploads/2020/07/Overall-Architecture-Angular-Django-RestAPIs-FullStack-Integration.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--5W8ctYLp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://loizenai.com/wp-content/uploads/2020/07/Overall-Architecture-Angular-Django-RestAPIs-FullStack-Integration.png" alt="Overall Architecture – Angular Django RestAPIs FullStack Integration"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;We build the backend Python Django Application that provides RestAPIs for POST/GET/PUT/DELETE Customer entities and store them in MySQL/PostgreSQL database.&lt;/li&gt;
&lt;li&gt;We implement the Angular CRUD Application that uses Angular HTTPClient to interact (call/receive requests) with Django backend’s RestAPIs and display corresponding page views in Browser&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Django RestAPIs CRUD MySQL Workflow – Django Angular MySQL CRUD Example
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Django Application interacts with MySQL/PostgreSQL database via Model layers.&lt;/li&gt;
&lt;li&gt;The Views are simply Python functions that take web requests and return web responses.&lt;/li&gt;
&lt;li&gt;URLs are used to mapping each request with the corresponding views.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--dNpfqa5k--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://loizenai.com/wp-content/uploads/2020/07/Django-RestAPIs-Workflow-Architecture.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--dNpfqa5k--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://loizenai.com/wp-content/uploads/2020/07/Django-RestAPIs-Workflow-Architecture.png" alt="Django RestAPIs Workflow Architecture"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Django RestAPI CRUD Project Structure – Django Angular MySQL CRUD Example
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--M-V9Rcy0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://loizenai.com/wp-content/uploads/2020/07/Django-Project-Structure.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--M-V9Rcy0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://loizenai.com/wp-content/uploads/2020/07/Django-Project-Structure.png" alt="Django Project Structure"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The Django RestAPIs project includes 2 folders:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;djangoLoiZenAiRestAPIs is a main project folder&lt;/li&gt;
&lt;li&gt;customers is an application folder&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Angular Frontend Architecture – Django Angular MySQL CRUD Example
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--qjvK8Y6E--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://loizenai.com/wp-content/uploads/2020/07/Angular-Application-Architecture.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--qjvK8Y6E--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://loizenai.com/wp-content/uploads/2020/07/Angular-Application-Architecture.png" alt="Angular Frontend Architecture – Django Angular MySQL CRUD Example"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Angular CRUD Application is designed with 3 main layers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Service Layer is used to define Angular Common Services and HttpClient Services to interact with RestAPIs&lt;/li&gt;
&lt;li&gt;Component Layer is used to define Angular Components to show views in Browser for interacting with Users&lt;/li&gt;
&lt;li&gt;Router Layer is used to route URLs mapping with the corresponding Angular Components&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Angular CRUD Project Structure – Django Angular MySQL CRUD Example
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--CnRfz3dt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://loizenai.com/wp-content/uploads/2020/07/Angular-Project-Structure-1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--CnRfz3dt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://loizenai.com/wp-content/uploads/2020/07/Angular-Project-Structure-1.png" alt="Angular Project Structure"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Angular CRUD Application defines 3 components, 2 services, 1 routers, and 2 data models:&lt;/p&gt;

&lt;p&gt;– Components:&lt;/p&gt;

&lt;p&gt;add-customer component is used to add a new customer to system&lt;br&gt;
list-customer component is used to show all customers on view pages, delete a customer and update a customer&lt;br&gt;
message component is used to define a view to show logging message on browser&lt;br&gt;
– Services:&lt;/p&gt;

&lt;p&gt;customer.service.ts defines POST/GET/PUT/DELETE HTTP requests to Django RestAPIs with the built-in Angular HttpClient.&lt;br&gt;
message.service.ts defines an array storage to log all messages when Angular CRUD App running&lt;br&gt;
– Router: app-routing.module.ts defines how to map a corresponding Angular component with an URL.&lt;/p&gt;

&lt;p&gt;– Models:&lt;/p&gt;

&lt;p&gt;customer.ts defines the main data model of our application.&lt;br&gt;
message.ts defines the response data model between Django RestAPIs and Angular application.&lt;/p&gt;

&lt;h2&gt;
  
  
  Angular Django MySQL Example – Project Goal – Django Angular MySQL CRUD Example
&lt;/h2&gt;

&lt;p&gt;Here is a list of goals for Angular Django CRUD Example with Django Rest Framework and MySQL database:&lt;/p&gt;

&lt;p&gt;– Add a Customer Entities from Angular Client:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--sMHqW6Pi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://loizenai.com/wp-content/uploads/2020/07/Goal-1-Add-a-Customer-Entity.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--sMHqW6Pi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://loizenai.com/wp-content/uploads/2020/07/Goal-1-Add-a-Customer-Entity.png" alt="Goal 1 – Add a Customer Entity"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;– List All Customer’s entities:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--DlpN2VTJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://loizenai.com/wp-content/uploads/2020/07/List-All-Customers-entities-from-Angular-Client.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--DlpN2VTJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://loizenai.com/wp-content/uploads/2020/07/List-All-Customers-entities-from-Angular-Client.png" alt="Goal 2 – List All Customer’s entities from Angular Client"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;– Details a Customer:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--umhWAdjv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://loizenai.com/wp-content/uploads/2020/07/Angular-shows-details-of-a-Customer-entity.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--umhWAdjv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://loizenai.com/wp-content/uploads/2020/07/Angular-shows-details-of-a-Customer-entity.png" alt="Goal 3 – Angular shows details of a Customer entity"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;– Update a Customer:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--o08eK69s--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://loizenai.com/wp-content/uploads/2020/07/Angular-Client-Update-a-Customer-Entity.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--o08eK69s--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://loizenai.com/wp-content/uploads/2020/07/Angular-Client-Update-a-Customer-Entity.png" alt="Goal 4 – Angular update a Customer Entity"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;– Delete a Customer:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--GGA3vOC8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://loizenai.com/wp-content/uploads/2020/07/Goal-5-Angular-Client-delete-a-Customer-entity.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--GGA3vOC8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://loizenai.com/wp-content/uploads/2020/07/Goal-5-Angular-Client-delete-a-Customer-entity.png" alt="Goal 5 – Angular Client delete a Customer entity"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Tutorial
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://loizenai.com/django-angular-mysql-crud-example/"&gt;Angular Django MySQL CRUD EXampple&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Related posts
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://loizenai.com/angular-10-nodejs-postgresql-crud-example-using-express-restapis-sequelize-tutorial/"&gt;Angular Nodejs PostgreSQL CRUD Example&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://loizenai.com/angular-10-nodejs-postgresql-crud-example-using-express-restapis-sequelize-tutorial/"&gt;SpringBoot + Angular + PostgreSQL CRUD Example&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://loizenai.com/angular-10-django-mysql-rest-crud-api-example/"&gt;Django Angular 10 CRUD Example – MySQL&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://loizenai.com/angular-10-django-mysql-rest-crud-api-example/"&gt;Django Angular 8 MySQL CRUD Example&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://loizenai.com/django-angular-9-postgresql-crud-example/"&gt;Django Angular 9 PostgreSQL CRUD Example&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://loizenai.com/django-angular-9-postgresql-crud-example/"&gt;Django Angular 9 MySQL CRUD Example&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://loizenai.com/django-angular-9-postgresql-crud-example/"&gt;Django Angular PostgreSQL CRUD Example&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://loizenai.com/django-angular-11-mysql-crud-example/"&gt;Django Angular 11 MySQL CRUD Example&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://loizenai.com/django-angular-11-mysql-crud-example/"&gt;Django Angular 11 PostgreSQL CRUD Example&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://loizenai.com/angular-10-spring-boot-jwt-authentication-example/"&gt;Angular Springboot Jwt Authentication Example&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/loizenai/angular-11-springboot-jwt-authentication-example-1h9f"&gt;SpringBoot Jwt authentication Example&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Youtube
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=dTR-41_jMvc&amp;amp;t=46s"&gt;https://www.youtube.com/watch?v=dTR-41_jMvc&amp;amp;t=46s&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=lb5LVzJbquI&amp;amp;t=476s"&gt;https://www.youtube.com/watch?v=lb5LVzJbquI&amp;amp;t=476s&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=DoV8xfA8WBo&amp;amp;t=30s"&gt;https://www.youtube.com/watch?v=DoV8xfA8WBo&amp;amp;t=30s&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=rYmf_MthobU&amp;amp;t=376s"&gt;https://www.youtube.com/watch?v=rYmf_MthobU&amp;amp;t=376s&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=7ZfInOvFsz0&amp;amp;t=1308s"&gt;https://www.youtube.com/watch?v=7ZfInOvFsz0&amp;amp;t=1308s&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>django</category>
      <category>mysql</category>
      <category>angular</category>
      <category>crud</category>
    </item>
    <item>
      <title>Angular Client Side Pagination with Nodejs + MySQL</title>
      <dc:creator>ozenero.com</dc:creator>
      <pubDate>Sun, 03 Jan 2021 07:42:09 +0000</pubDate>
      <link>https://dev.to/ozenero/angular-client-side-pagination-with-nodejs-mysql-1k68</link>
      <guid>https://dev.to/ozenero/angular-client-side-pagination-with-nodejs-mysql-1k68</guid>
      <description>&lt;h1&gt;
  
  
  Angular Client Side Pagination with Nodejs + MySQL
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://loizenai.com/angular-client-side-pagination-with-nodejs-mysql/" rel="noopener noreferrer"&gt;https://loizenai.com/angular-client-side-pagination-with-nodejs-mysql/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F12%2FAngular-Client-Pagination-Nodejs-MySQL-Example.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F12%2FAngular-Client-Pagination-Nodejs-MySQL-Example.png" alt="Angular Client Side Pagination with Nodejs + MySQL"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Tutorial: ” Angular Client Side Pagination with Nodejs + MySQL – Server Side Pagination in Node.js Angular MySQL database + Express + Sequelize CRUD ”&lt;/p&gt;

&lt;p&gt;In the tutorial, I introduce how to build an “Angular 10 Nodejs Pagination RestAPIs Example with MySQL database (Server Side Pagination with filtering and sorting)” project using Express framework and Sequelize crud queries to interact with database’s records.&lt;/p&gt;

&lt;p&gt;– Nodejs Express project (server side pagination) produces pagination RestAPIs with MySQL database records using Sequelize CRUD queries.&lt;br&gt;
– Angular 10 project (client side pagination) will consume the Node.js pagination RestAPIs then show up on component’s views.&lt;/p&gt;

&lt;h2&gt;
  
  
  Architecture – Angular Client Side Pagination with Nodejs + MySQL
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F08%2FAngular-Nodejs-MySQL-RestAPIs-Overview.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F08%2FAngular-Nodejs-MySQL-RestAPIs-Overview.png" alt="Architecture – Angular Client Side Pagination with Nodejs + MySQL"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the tutorial “Server Side Pagination in Node.js Angular 10”, We develop 2 projects:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Backend Project – Nodejs MySQL Pagination Application gets data from MySQL database then provides RestAPIs with pagination, filtering and sorting function for frontend&lt;/li&gt;
&lt;li&gt;Frontend Project – Angular Application use HttpClient to fetch data from Backend Application then shows them in Bootstrap table with pagination, filtering and sorting functions&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Project Goal – Angular Client Side Pagination with Nodejs + MySQL
&lt;/h2&gt;

&lt;p&gt;– Make a request at API: /api/customers/pagefiltersort with pagination, filtering and sorting params as below:&lt;/p&gt;

&lt;p&gt;page: 0 – first page&lt;br&gt;
size: 5 – size of a page&lt;br&gt;
salary: 4000 – filtering by salary field&lt;br&gt;
agesorting: true – sorting by age&lt;br&gt;
desc: true – descending or ascending sorting&lt;br&gt;
– Result:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F08%2FNodejs-MySQL-Pagination-RestAPIs-Examples.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F08%2FNodejs-MySQL-Pagination-RestAPIs-Examples.png" alt="Nodejs MySQL Pagination RestAPIs Examples"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;– Angular Frontend Pagination with Filtering and Sorting table:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F08%2FAngular-Pagination-Frontend.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F08%2FAngular-Pagination-Frontend.png" alt="– Angular Frontend Pagination with Filtering and Sorting table"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Video Guide – Angular Client Side Pagination with Nodejs + MySQL
&lt;/h2&gt;

&lt;p&gt;For the tutorial “Angular Client Side Pagination with Nodejs + MySQL”, I create a Youtube video guide with clearly steps to debug full-stack for all running flows of living code from Angular client to Nodejs backend pagination:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://youtu.be/pkQY56B5Ut0" rel="noopener noreferrer"&gt;https://youtu.be/pkQY56B5Ut0&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Overall Server Side Pagination in Node.js/Express Sequelize MySQL Pagination
&lt;/h2&gt;

&lt;p&gt;To handling Pagination RestAPI requests and do Paging Filtering and Sorting queries with MySQL database, we create a backend web Node.js application with 4 main points:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F08%2FNodejs-Pagination-Overall-Architecture.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F08%2FNodejs-Pagination-Overall-Architecture.png" alt="Nodejs Pagination Overall Architecture"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;To handle pagination RestAPI requests with Node.js, We use Express framework.&lt;/li&gt;
&lt;li&gt;To do pagination filtering and sorting queries with MySQL database, We use Sequelize ORM.&lt;/li&gt;
&lt;li&gt;We define all RestAPI URLs in router.js.&lt;/li&gt;
&lt;li&gt;We implement code how to process each paging filtering and sorting RestAPI request in controller.js file.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Nodejs/Express Sequelize Pagination Queries
&lt;/h2&gt;

&lt;p&gt;To do the pagination with database, Sequelize ORM provides 2 model methods for supporting the purpose with limit and offset parameters:&lt;/p&gt;

&lt;p&gt;.findAll() – Search for multiple elements in the database&lt;br&gt;
.findAndCountAll() - Search for multiple elements in the database, returns both data and total count&lt;br&gt;
How about limit &amp;amp; offset for nodejs pagination?&lt;/p&gt;

&lt;p&gt;limit is the maximum number of records to fetch&lt;br&gt;
offset is the quantity of records to skip&lt;br&gt;
For example, if we have total 12 items:&lt;/p&gt;

&lt;p&gt;{ offset: 5 }: skip first 5 items, fetch 7 remaining items.&lt;br&gt;
{ limit: 5 }: fetch first 5 items.&lt;br&gt;
{ offset: 5, limit: 5 }: skip first 5 items, fetch 6th and 10th items.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tutorial Link
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://loizenai.com/angular-client-side-pagination-with-nodejs-mysql/" rel="noopener noreferrer"&gt;https://loizenai.com/angular-client-side-pagination-with-nodejs-mysql/&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Related post
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://loizenai.com/angular-spring-boot-jwt-authentication-example-angular-6-8-9-spring-security-mysql-postgresql/" rel="noopener noreferrer"&gt;Angular 10 Spring Boot JWT Authentication Example – Angular 6, 8, 9, 10 + Spring Security + MySQL/PostgreSQL&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://loizenai.com/angular-nodejs-jwt-authentication-examples-tutorials/" rel="noopener noreferrer"&gt;Angular &amp;amp; Nodejs JWT Authentication fullstack Example | Angular 6, 7, 8, 9 – Express RestAPIs + JWT + BCryptjs + Sequelize + MySQL/PostgreSQL&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://loizenai.com/angular-nodejs-jwt-authentication-examples-tutorials/" rel="noopener noreferrer"&gt;Django RestAPIs Tutorial – Build Post/Get/Put/Delete request Examples to MySQL/PostgreSQL databases&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://loizenai.com/angular-nodejs-jwt-authentication-examples-tutorials/" rel="noopener noreferrer"&gt;Server Side Pagination in Node.js Angular 10 + MySQL + Sequelize&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://loizenai.com/angular-nodejs-jwt-authentication-examples-tutorials/" rel="noopener noreferrer"&gt;Spring Boot Angular Pagination Example&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://loizenai.com/angular-nodejs-jwt-authentication-examples-tutorials/" rel="noopener noreferrer"&gt;Spring Boot Angular 11 Pagination Example&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://loizenai.com/angular-nodejs-jwt-authentication-examples-tutorials/" rel="noopener noreferrer"&gt;Angular Table Pagination Filtering Sorting with SpringBoot RestAPIs + Bootstrap Example – Angular 10-9-8-6 Tutorial&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://loizenai.com/angular-10-nodejs-mongodb-pagination-example/" rel="noopener noreferrer"&gt;Angular 10 Server Side Pagination in Nodejs MongoDB Example&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Youtube Video
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=dTR-41_jMvc&amp;amp;t=46s" rel="noopener noreferrer"&gt;https://www.youtube.com/watch?v=dTR-41_jMvc&amp;amp;t=46s&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=lb5LVzJbquI&amp;amp;t=476s" rel="noopener noreferrer"&gt;https://www.youtube.com/watch?v=lb5LVzJbquI&amp;amp;t=476s&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=DoV8xfA8WBo&amp;amp;t=30s" rel="noopener noreferrer"&gt;https://www.youtube.com/watch?v=DoV8xfA8WBo&amp;amp;t=30s&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=rYmf_MthobU&amp;amp;t=376s" rel="noopener noreferrer"&gt;https://www.youtube.com/watch?v=rYmf_MthobU&amp;amp;t=376s&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=7ZfInOvFsz0&amp;amp;t=1308s" rel="noopener noreferrer"&gt;https://www.youtube.com/watch?v=7ZfInOvFsz0&amp;amp;t=1308s&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>angular</category>
      <category>pagination</category>
      <category>mysql</category>
    </item>
    <item>
      <title>Crud Operation In React.js and Mysql</title>
      <dc:creator>ozenero.com</dc:creator>
      <pubDate>Sun, 03 Jan 2021 07:40:04 +0000</pubDate>
      <link>https://dev.to/ozenero/crud-operation-in-react-js-and-mysql-16p3</link>
      <guid>https://dev.to/ozenero/crud-operation-in-react-js-and-mysql-16p3</guid>
      <description>&lt;h1&gt;
  
  
  Crud Operation In React.js and Mysql
&lt;/h1&gt;

&lt;p&gt;Tutorial : &lt;a href="https://loizenai.com/react-node-js-crud-mysql/" rel="noopener noreferrer"&gt;https://loizenai.com/react-node-js-crud-mysql/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://loizenai.com/react-node-js-crud-mysql/" rel="noopener noreferrer"&gt;Crud Operation In React.js and Mysql&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Tutorial: React Node.js MySQL CRUD Example – Step By Step React, Nodejs and Mysql simple full-stack Application&lt;/p&gt;

&lt;p&gt;In the tutorial, I introduce how to build an “React.js Nodejs CRUD MySQL Example” project with the help of Ajax to POST/GET/PUT/DELETE requests with step by step coding examples:&lt;/p&gt;

&lt;p&gt;– Nodejs project produces CRUD RestAPIs with MySQL database using the supporting of Sequelize ORM.&lt;br&gt;
– React.js project will consume the Nodejs CRUD RestAPIs by Ajax then show up on Reactjs component’s views.&lt;/p&gt;

&lt;p&gt;– I draw a fullstack overview Diagram Architecture from React.js Frontend to MySQL database through Nodejs RestAPI backend.&lt;br&gt;
– Develop Nodejs CRUD RestAPIs with the supporting of Sequelize ORM.&lt;br&gt;
– Implement Reactjs CRUD application with Ajax fetching APIs to do CRUD request (Post/Get/Put/Delete) to Nodejs Backend APIs.&lt;br&gt;
– I create a testsuite with a number of integrative testcases with CRUD RestAPI requests from Reactjs to do CRUD requests to Nodejs RestAPIs Server and save/retrieve data to MySQL database.&lt;/p&gt;

&lt;p&gt;React Node.js Mysql CRUD Example – Step By Step React, Nodejs and Mysql simple full-stack Application&lt;/p&gt;

&lt;h2&gt;
  
  
  Overall Architecture System: Reactjs + Nodejs + MySQL – React Node.js MySQL CRUD Example - Crud Operation In React.js and Mysql
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F11%2FReact.js-Nodejs-MySQL-Diagram-Architecture.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F11%2FReact.js-Nodejs-MySQL-Diagram-Architecture.png" alt="React.js Nodejs MySQL Diagram Architecture"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;We build a backend: Nodejs CRUD Application with MySQL that provides RestAPIs for POST/GET/PUT/DELETE data entities and store them in MySQL database.&lt;/li&gt;
&lt;li&gt;We implement React.js CRUD Application that use Ajax to interact (call/receive requests) with Nodejs CRUD application and display corresponding data in Reactjs Component.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Nodejs MySQL CRUD Design Application – React Node.js MySQL CRUD Example
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F11%2FNodejs-Build-CRUD-MySQL-Architecture-Overview.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F11%2FNodejs-Build-CRUD-MySQL-Architecture-Overview.png" alt="Nodejs-Build-CRUD-MySQL-Architecture-Overview"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We have 4 main blocks for the application:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;For building RestAPIs in Nodejs application, we use Express framework.&lt;/li&gt;
&lt;li&gt;For interacting with database MySQL, we use Sequelize ORM.&lt;/li&gt;
&lt;li&gt;We define APIs URL in router.js file&lt;/li&gt;
&lt;li&gt;We implement how to process each API URL in controller.js file&lt;/li&gt;
&lt;li&gt;We use Bootstrap and JQuery Ajax to implement frontend client.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Reactjs CRUD Application Design – React Node.js MySQL CRUD Example - Crud Operation In React.js and Mysql
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F11%2FReactjs-CRUD-RestAPI-Application-Frontend-Architecture-Diagram.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F11%2FReactjs-CRUD-RestAPI-Application-Frontend-Architecture-Diagram.png" alt="Reactjs CRUD RestAPI Application Frontend Architecture Diagram"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;– Reactjs CRUD Application is designed with 2 main layers:&lt;/p&gt;

&lt;p&gt;React.js components let you split the UI into independent, reusable pieces, and think about each piece in isolation.&lt;br&gt;
Ajax is used by Reactjs component to fetch (post/put/get/delete) data from remote restapi by http request&lt;br&gt;
Reactjs CRUD Application defines 5 components:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Home.js is used serve as the landing page for your app.&lt;/li&gt;
&lt;li&gt;AppNavbar.js is used to establish a common UI feature between components.&lt;/li&gt;
&lt;li&gt;CustomerList.js is used to show all customers in the web-page&lt;/li&gt;
&lt;li&gt;CustomerEdit.js is used to modify the existed customer&lt;/li&gt;
&lt;li&gt;App.js uses React Router to navigate between components.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Integrative Project Goal – React Node.js MySQL CRUD Example
&lt;/h2&gt;

&lt;p&gt;Reactjs Home page:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F11%2FProject-Goal-Home-Page.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F11%2FProject-Goal-Home-Page.png" alt="Reactjs Home page"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Reactjs List all data:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F11%2FProject-Goal-Customer-List.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F11%2FProject-Goal-Customer-List.png" alt="Project Goal Customer List"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Reactjs add data:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F11%2FProject-Goal-Reactjs-Add-a-Customer-through-Nodejs-RestAPI.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F11%2FProject-Goal-Reactjs-Add-a-Customer-through-Nodejs-RestAPI.png" alt="Reactjs add data"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Reactjs update data:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F11%2FProject-Goal-Reactjs-Update-Customer-through-Nodejs-RestAPI-to-MySQL-database.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F11%2FProject-Goal-Reactjs-Update-Customer-through-Nodejs-RestAPI-to-MySQL-database.png" alt="Reactjs update data"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Reactjs delete a customer with id=2, check the Customer List after deleting:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F11%2FProject-Goal-Reactjs-show-List-Customer-after-Delete-successfully.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F11%2FProject-Goal-Reactjs-show-List-Customer-after-Delete-successfully.png" alt="Project Goal – Reactjs show List Customer after Delete successfully"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Check MySQL Database after do CRUD operations:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F11%2FCheck-MySQL-records-after-do-CRUD-operation.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F11%2FCheck-MySQL-records-after-do-CRUD-operation.png" alt="Check MySQL records after do CRUD operation"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Tutorial Link - Crud Operation In React.js and Mysql
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://loizenai.com/react-node-js-crud-mysql/" rel="noopener noreferrer"&gt;https://loizenai.com/react-node-js-crud-mysql/&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Youtube Video - Crud Operation In React.js and Mysql
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=MjLjHEP74vE&amp;amp;t=28s" rel="noopener noreferrer"&gt;https://www.youtube.com/watch?v=MjLjHEP74vE&amp;amp;t=28s&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Related post - Crud Operation In React.js and Mysql
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://loizenai.com/angular-10-nodejs-postgresql-crud-example-using-express-restapis-sequelize-tutorial/" rel="noopener noreferrer"&gt;Angular 10 Nodejs PostgreSQL CRUD Example&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://loizenai.com/springboot-angular-10-postgresql-crud-restapi-example/" rel="noopener noreferrer"&gt;SpringBoot + Angular 10 + PostgreSQL CRUD Example&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://loizenai.com/integrate-reactjs-springboot/" rel="noopener noreferrer"&gt;Integrate Reactjs SpringBoot&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://loizenai.com/springboot-react-mysql-crud-example/" rel="noopener noreferrer"&gt;SpringBoot React MySQL CRUD Example&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://loizenai.com/reactjs-nodejs-postgresql-example/" rel="noopener noreferrer"&gt;Reactjs Nodejs PostgreSQL Example&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://loizenai.com/reactjs-nodejs-postgresql-example/" rel="noopener noreferrer"&gt;SpringBoot Reactjs MongoDB CRUD&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>crud</category>
      <category>mysql</category>
      <category>react</category>
    </item>
    <item>
      <title>SpringBoot Angular Pagination Example</title>
      <dc:creator>ozenero.com</dc:creator>
      <pubDate>Sun, 03 Jan 2021 07:37:35 +0000</pubDate>
      <link>https://dev.to/ozenero/springboot-angular-pagination-example-33p7</link>
      <guid>https://dev.to/ozenero/springboot-angular-pagination-example-33p7</guid>
      <description>&lt;p&gt;Tutorial Link: &lt;a href="https://loizenai.com/spring-boot-angular-pagination-example/"&gt;https://loizenai.com/spring-boot-angular-pagination-example/&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  SpringBoot Angular Pagination Example
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--MSMhDa93--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://loizenai.com/wp-content/uploads/2020/12/Angular-SpringBoot-Pagination-Example.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--MSMhDa93--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://loizenai.com/wp-content/uploads/2020/12/Angular-SpringBoot-Pagination-Example.png" alt="SpringBoot Angular Pagination Example"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Tutorial: “Spring Boot Angular Pagination Example – Angular Table Pagination Filtering Sorting with SpringBoot RestAPIs + Bootstrap Example”&lt;/p&gt;

&lt;p&gt;When we have a large dataset and we want to present it to the user in smaller chunks, pagination and sorting is often helpful solution. So in the tutorial, I introduce how to use Angular to build a table solution for pagination, filtering and sorting the fetching data with SpringBoot RestAPIs examples.&lt;/p&gt;

&lt;h2&gt;
  
  
  Overview Spring Boot Angular Pagination Example
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--sPzY8uHE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://loizenai.com/wp-content/uploads/2020/07/Fullstack-Overview-Architecture-Angular-Table-Pagination-Filtering-Sorting-integrate-with-Springboot-RestAPIs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--sPzY8uHE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://loizenai.com/wp-content/uploads/2020/07/Fullstack-Overview-Architecture-Angular-Table-Pagination-Filtering-Sorting-integrate-with-Springboot-RestAPIs.png" alt="Fullstack Overview Architecture – Angular Table Pagination Filtering Sorting integrate with Springboot RestAPIs"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Backend Project – SpringBoot Application gets data from MySQL/PostgreSQL database then provides RestAPIs with pagination, filtering and sorting function for frontend&lt;/li&gt;
&lt;li&gt;Frontend Project – Angular Application use HttpClient to fetch data from Backend Application then shows them in Bootstrap table with pagination, filtering and sorting functions&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Project Goal – Spring Boot Angular Pagination Example
&lt;/h2&gt;

&lt;p&gt;– Make a request at API: /api/customers/custom/pageable with pagination, filtering and sorting params as below:&lt;/p&gt;

&lt;p&gt;page: 0 – first page&lt;br&gt;
size: 5 – size of a page&lt;br&gt;
salary: 4000 – filtering by salary field&lt;br&gt;
agesorting: true – sorting by age&lt;br&gt;
desc: true – descending or ascending sorting&lt;/p&gt;

&lt;p&gt;– Result:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Jdqr6N52--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://loizenai.com/wp-content/uploads/2020/07/SpringBoot-RestAPIs-Pagination-Filtering-and-Sorting-request.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Jdqr6N52--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://loizenai.com/wp-content/uploads/2020/07/SpringBoot-RestAPIs-Pagination-Filtering-and-Sorting-request.png" alt="SpringBoot RestAPIs Pagination Filtering and Sorting request"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;– Angular Frontend Pagination with Filtering and Sorting table:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--74LuSy88--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://loizenai.com/wp-content/uploads/2020/07/Angular-Pagination-Filtering-Sorting-View-Page.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--74LuSy88--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://loizenai.com/wp-content/uploads/2020/07/Angular-Pagination-Filtering-Sorting-View-Page.png" alt="Angular Pagination Filtering Sorting – View Page"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Tutorial Link - SpringBoot Angular Pagination Example
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://loizenai.com/spring-boot-angular-pagination-example/"&gt;https://loizenai.com/spring-boot-angular-pagination-example/&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Related posts - SpringBoot Angular Pagination Example
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://loizenai.com/build-angular-table-pagination-filtering-sorting-with-springboot-restapis-example-tutorial/"&gt;Angular Table Pagination Filtering Sorting with SpringBoot RestAPIs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://loizenai.com/server-side-pagination-in-node-js-angular-10-mysql-sequelize/"&gt;Server Side Pagination in Node.js Angular 10 + MySQL + Sequelize&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://loizenai.com/angular-10-nodejs-mongodb-pagination-example/"&gt;Angular 10 Server Side Pagination in Nodejs MongoDB Example&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://loizenai.com/ajax-client-side-pagination-in-nodejs-mysql-restapis-example/"&gt;Ajax Pagination Node.js MySQL RestAPIs Example&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://loizenai.com/pagination-nodejs-mongodb-example/"&gt;Server Side Pagination in Nodejs MongoDB (Atlas) RestAPIs Example&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://loizenai.com/angular-client-side-pagination-with-nodejs-mysql/"&gt;Angular Client Side Pagination with Nodejs MySQL&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://loizenai.com/spring-boot-pagination-filter/"&gt;SpringBoot Pagination Filter Example&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://loizenai.com/spring-boot-angular-11-pagination-example/"&gt;SpringBoot Angular 11 Pagination Example&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Youtube video
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=dTR-41_jMvc&amp;amp;t=46s"&gt;https://www.youtube.com/watch?v=dTR-41_jMvc&amp;amp;t=46s&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=lb5LVzJbquI&amp;amp;t=476s"&gt;https://www.youtube.com/watch?v=lb5LVzJbquI&amp;amp;t=476s&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=DoV8xfA8WBo&amp;amp;t=30s"&gt;https://www.youtube.com/watch?v=DoV8xfA8WBo&amp;amp;t=30s&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=rYmf_MthobU&amp;amp;t=376s"&gt;https://www.youtube.com/watch?v=rYmf_MthobU&amp;amp;t=376s&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=7ZfInOvFsz0&amp;amp;t=1308s"&gt;https://www.youtube.com/watch?v=7ZfInOvFsz0&amp;amp;t=1308s&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>springboot</category>
      <category>angular</category>
      <category>pagination</category>
    </item>
    <item>
      <title>Spring Boot Pagination and Sorting Example</title>
      <dc:creator>ozenero.com</dc:creator>
      <pubDate>Thu, 31 Dec 2020 19:11:29 +0000</pubDate>
      <link>https://dev.to/ozenero/spring-boot-pagination-and-sorting-example-474p</link>
      <guid>https://dev.to/ozenero/spring-boot-pagination-and-sorting-example-474p</guid>
      <description>&lt;p&gt;Spring Boot Pagination and Sorting Example&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tutorial Link: &lt;a href="https://loizenai.com/spring-boot-pagination-filter/"&gt;https://loizenai.com/spring-boot-pagination-filter/&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--FZWWRCdS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://loizenai.com/wp-content/uploads/2020/07/SpringBoot-Pagination-Sorting-Examples-Filtering-with-MySQL-database-using-Spring-JPA.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--FZWWRCdS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://loizenai.com/wp-content/uploads/2020/07/SpringBoot-Pagination-Sorting-Examples-Filtering-with-MySQL-database-using-Spring-JPA.png" alt="Spring Boot Pagination and Sorting Example"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When we have a large dataset and we want to present it to the user in smaller chunks, pagination and sorting is often helpful solution. So in the tutorial, I introduce how to build “Spring Boot Pagination and Sorting Example” use Spring JPA APIs of PagingAndSortingRepository to do the task with SpringBoot project example.&lt;/p&gt;

&lt;h2&gt;
  
  
  Goal – Spring Boot Pagination and Sorting Example
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--nw9-CT0h--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://loizenai.com/wp-content/uploads/2020/07/SpringBoot-tutorial-Pagination-and-Sorting-Examples.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--nw9-CT0h--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://loizenai.com/wp-content/uploads/2020/07/SpringBoot-tutorial-Pagination-and-Sorting-Examples.png" alt="Spring Boot Pagination and Sorting Example"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;– Paging Request:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Q1Cy-wMA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://loizenai.com/wp-content/uploads/2020/07/SpringBoot-Paging-Request-Examples-with-page0-size5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Q1Cy-wMA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://loizenai.com/wp-content/uploads/2020/07/SpringBoot-Paging-Request-Examples-with-page0-size5.png" alt="Paging request"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;– Pagination and Sorting request:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--bMRgMf71--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://loizenai.com/wp-content/uploads/2020/07/SpringBoot-Pagination-and-Sorting-Request-Examples-with-page0-size5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--bMRgMf71--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://loizenai.com/wp-content/uploads/2020/07/SpringBoot-Pagination-and-Sorting-Request-Examples-with-page0-size5.png" alt="SpringBoot Pagination and Sorting Request Examples with page=0, size=5"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  PagingAndSorting Repository
&lt;/h2&gt;

&lt;p&gt;Related posts:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://loizenai.com/jquery-ajax-pagination-filtering-sorting-tutorial-bootstrap-table-springboot-restapis-examples/"&gt;Ajax Pagination Filtering and Sorting with SpringBoot RestAPI Example&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://loizenai.com/angular-crud-application-with-springboot-and-mysql-postgresql-restapis-fullstack-angular-httpclient-post-get-put-delete/"&gt;Angular CRUD Application with SpringBoot and MySQL&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://loizenai.com/spring-boot-security-jwt-authentication-example-mysql-postgresql-spring-jpa-restapis/"&gt;Spring Boot Security JWT Authentication Example&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://loizenai.com/angular-10-nodejs-jwt-authentication-mysql-examples-tutorials/"&gt;Angular 10 + Nodejs JWT Token Based Authentication with MySQL Example&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>pagination</category>
      <category>springboot</category>
      <category>sorting</category>
      <category>filter</category>
    </item>
    <item>
      <title>Reactjs Nodejs PostgreSQL Example</title>
      <dc:creator>ozenero.com</dc:creator>
      <pubDate>Thu, 31 Dec 2020 17:46:29 +0000</pubDate>
      <link>https://dev.to/ozenero/reactjs-nodejs-postgresql-example-c9m</link>
      <guid>https://dev.to/ozenero/reactjs-nodejs-postgresql-example-c9m</guid>
      <description>&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F11%2FReactjs-Nodejs-PostgreSQL-CRUD-Example.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F11%2FReactjs-Nodejs-PostgreSQL-CRUD-Example.png" alt="reactjs nodejs postgresql"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Link tutorial: &lt;a href="https://loizenai.com/reactjs-nodejs-postgresql-example/" rel="noopener noreferrer"&gt;https://loizenai.com/reactjs-nodejs-postgresql-example/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the tutorial, I introduce how to build an “React.js Nodejs CRUD PostgreSQL Example” project with the help of Ajax to POST/GET/PUT/DELETE requests with step by step coding examples:&lt;/p&gt;

&lt;p&gt;– Nodejs project produces CRUD RestAPIs with PostgreSQL database using the supporting of Sequelize ORM.&lt;br&gt;
– React.js project will consume the Nodejs CRUD RestAPIs by Ajax then show up on Reactjs component’s views.&lt;/p&gt;

&lt;p&gt;List to do:&lt;/p&gt;

&lt;p&gt;– I draw a fullstack overview Diagram Architecture from React.js Frontend to PostgreSQL database through Nodejs RestAPI backend.&lt;br&gt;
– Develop Nodejs CRUD RestAPIs with the supporting of Sequelize ORM.&lt;br&gt;
– Implement Reactjs CRUD application with Ajax fetching APIs to do CRUD request (Post/Get/Put/Delete) to Nodejs Backend APIs.&lt;br&gt;
– I create a testsuite with a number of integrative testcases with CRUD RestAPI requests from Reactjs to do CRUD requests to Nodejs RestAPIs Server and save/retrieve data to PostgreSQL database.&lt;/p&gt;

&lt;h2&gt;
  
  
  Overall Architecture System: Reactjs + Nodejs + PostgreSQL
&lt;/h2&gt;

&lt;p&gt;![Overall Architecture System: Reactjs + Nodejs + PostgreSQL]&lt;a href="https://loizenai.com/wp-content/uploads/2020/11/React.js-Nodejs-PostgreSQL-Diagram-Architecture.png" rel="noopener noreferrer"&gt;https://loizenai.com/wp-content/uploads/2020/11/React.js-Nodejs-PostgreSQL-Diagram-Architecture.png&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;We build a backend: Nodejs CRUD Application with PostgreSQL that provides RestAPIs for POST/GET/PUT/DELETE data entities and store them in PostgreSQL database.&lt;/li&gt;
&lt;li&gt;We implement React.js CRUD Application that use Ajax to interact (call/receive requests) with Nodejs CRUD application and display corresponding data in Reactjs Component.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Nodejs PostgreSQL CRUD Design Application
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F11%2FNodejs-Build-CRUD-MySQL-Architecture-Overview-1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F11%2FNodejs-Build-CRUD-MySQL-Architecture-Overview-1.png" alt="Nodejs PostgreSQL CRUD Design"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We have 4 main blocks for the application:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;For building RestAPIs in Nodejs application, we use Express framework.&lt;/li&gt;
&lt;li&gt;For interacting with database PostgreSQL, we use Sequelize ORM.&lt;/li&gt;
&lt;li&gt;We define APIs URL in router.js file&lt;/li&gt;
&lt;li&gt;We implement how to process each API URL in controller.js file&lt;/li&gt;
&lt;li&gt;We use Bootstrap and JQuery Ajax to implement frontend client.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Reactjs CRUD Application Design
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://loizenai.com/wp-content/uploads/2020/11/Reactjs-CRUD-RestAPI-Application-Frontend-Architecture-Diagram-2.png" rel="noopener noreferrer"&gt;Reactjs CRUD Application design&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;– Reactjs CRUD Application is designed with 2 main layers:&lt;/p&gt;

&lt;p&gt;React.js components let you split the UI into independent, reusable pieces, and think about each piece in isolation.&lt;br&gt;
Ajax is used by Reactjs component to fetch (post/put/get/delete) data from remote restapi by http request&lt;/p&gt;

&lt;p&gt;Reactjs CRUD Application defines 5 components:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Home.js is used serve as the landing page for your app.&lt;/li&gt;
&lt;li&gt;AppNavbar.js is used to establish a common UI feature between components.&lt;/li&gt;
&lt;li&gt;CustomerList.js is used to show all customers in the web-page&lt;/li&gt;
&lt;li&gt;CustomerEdit.js is used to modify the existed customer&lt;/li&gt;
&lt;li&gt;App.js uses React Router to navigate between components.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Integrative Project Goal
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F11%2FReactjs-application-show-list-data-after-update-a-customer.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F11%2FReactjs-application-show-list-data-after-update-a-customer.png" alt="Integrative Project Goal"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Tutorial Link: &lt;a href="https://loizenai.com/reactjs-nodejs-postgresql-example/" rel="noopener noreferrer"&gt;Reactjs Nodejs PostgreSQL Example&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Nodejs Reactjs Tutorial:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://loizenai.com/integrate-reactjs-nodejs-tutorial/" rel="noopener noreferrer"&gt;How to Integrate Reactjs with Nodejs Tutorial&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://loizenai.com/reactjs-nodejs-crud-mysql/" rel="noopener noreferrer"&gt;Reactjs Node.js MySQL CRUD Example&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://loizenai.com/reactjs-nodejs-postgresql-example/" rel="noopener noreferrer"&gt;Reactjs Nodejs PostgreSQL Example&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://loizenai.com/reactjs-nodejs-mongodb-crud/" rel="noopener noreferrer"&gt;Reactjs Nodejs MongoDB CRUD Example – MERN Stack Application&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>react</category>
      <category>node</category>
      <category>postgres</category>
    </item>
    <item>
      <title>Node.js PostgreSQL CRUD Example</title>
      <dc:creator>ozenero.com</dc:creator>
      <pubDate>Sun, 20 Dec 2020 16:57:27 +0000</pubDate>
      <link>https://dev.to/ozenero/node-js-postgresql-crud-example-2l50</link>
      <guid>https://dev.to/ozenero/node-js-postgresql-crud-example-2l50</guid>
      <description>&lt;h1&gt;
  
  
  Node.js PostgreSQL CRUD Example Express RestAPIs + Sequelize + PostgreSQL tutorial
&lt;/h1&gt;

&lt;p&gt;Tutorial Link : &lt;a href="https://loizenai.com/node-js-postgresql-crud-example/"&gt;Nodejs PostgreSQL CRUD Example&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--jxFzsn4I--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://loizenai.com/wp-content/uploads/2020/08/Node.js-PostgreSQL-CRUD-Example-Express-RestAPIs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--jxFzsn4I--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://loizenai.com/wp-content/uploads/2020/08/Node.js-PostgreSQL-CRUD-Example-Express-RestAPIs.png" alt="Nodejs PostgreSQL CRUD Example"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the tutorial, I will introduce step by step how to create a ‘Node.js PostgreSQL CRUD Example – Express RestAPIs + Sequelize + PostgreSQL tutorial’ with a full-stack technologies: Express RestAPI Framework (Cors + Body-Parse) + Sequelize ORM + PostgreSQL database.&lt;/p&gt;

&lt;h2&gt;
  
  
  Overview Architecture – Node.js Express Sequelize PostgreSQL CRUD RestAPIs Example
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--KsAKfY6F--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://loizenai.com/wp-content/uploads/2020/08/Nodejs-PostgreSQL-CRUD-Example-Architecture-Overview.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--KsAKfY6F--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://loizenai.com/wp-content/uploads/2020/08/Nodejs-PostgreSQL-CRUD-Example-Architecture-Overview.png" alt="Overview Architecture – Node.js Express Sequelize PostgreSQL CRUD RestAPIs Example"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To handling all POST/GET/PUT/DELETE RestAPI requests and do CRUD with PostgreSQL database, we create a backend web Node.js application with 4 main points:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;To handle CRUD RestAPI requests with Node.js, we use Express.js framework.&lt;/li&gt;
&lt;li&gt;To do CRUD operations with PostgreSQL database, we use Sequelize ORM queries.&lt;/li&gt;
&lt;li&gt;We define all RestAPI urls in router.js.&lt;/li&gt;
&lt;li&gt;We implement how to process each RestAPI requests in controller.js file.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Project Goal
&lt;/h2&gt;

&lt;p&gt;After the tutorial, we will understand overall architecture and clearly picture how to create a full backend web restapis application with Node.js technology from abstract overview to specific helpful frameworks and details sourcecode for connecting all things in one application.&lt;/p&gt;

&lt;p&gt;We will define 8 RestAPIs with POST/GET/PUT/DELETE methods for posting, fetching, updating, removing, pagination, filtering and sorting data from PostgreSQL database:&lt;/p&gt;

&lt;p&gt;– For normally requests with POST/GET/PUT/DELETE methods, we create a first GROUP with 5 RestAPIs:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;POST RestAPI /api/customers/create will handle the submit data from client to save in PostgreSQL database&lt;/li&gt;
&lt;li&gt;GET RestAPI /api/customers/all will fetch all data from PostgreSQL database&lt;/li&gt;
&lt;li&gt;GET RestAPI /api/customers/onebyid/:id will get a single data by primary key id&lt;/li&gt;
&lt;li&gt;PUT RestAPI /api/customers/update/:id will update an existed record in PostgreSQL database&lt;/li&gt;
&lt;li&gt;DELETE RestAPI /api/customers/delete/:id will delete an existed record in PostgreSQL which is associated with a primary key id&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;– For advanced purpose such as Filtering, Pagination and Sorting, we create the second RestAPIs group:&lt;/p&gt;

&lt;p&gt;1.Filtering Request – GET RestAPI /api/customers/filteringbyage is used to fetch all records from PostgreSQL with a filtering by age&lt;br&gt;
2.Pagination Request – GET RestAPI /api/customers/pagination is used to fetch data from PostgreSQL with pagination purpose.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Pagination Filtering and Sorting – GET RestAPI /api/customers/pagefiltersort is defined to fetch data from PostgreSQL with pagination, filtering by age and ordering by 2 fields firstname and lastname&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Testcase 1 – Nodejs Express PostgreSQL POST Request
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--fckCdsFV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://loizenai.com/wp-content/uploads/2020/08/testcase-1-nodejs-postgresql-crud-post-request.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fckCdsFV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://loizenai.com/wp-content/uploads/2020/08/testcase-1-nodejs-postgresql-crud-post-request.png" alt="Testcase 1 – Nodejs Express PostgreSQL POST Request"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Check PostgreSQL’s records:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--K6lQzQrX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://loizenai.com/wp-content/uploads/2020/08/Check-PostgreSQL-database-records.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--K6lQzQrX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://loizenai.com/wp-content/uploads/2020/08/Check-PostgreSQL-database-records.png" alt="Check PostgreSQL database records"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Testcase 2 – Nodejs Express PostgreSQL GET Request: get all data from PostgreSQL
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--muTNaNnA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://loizenai.com/wp-content/uploads/2020/08/Testcase-2-Nodejs-GET-request-Retrieve-all-records-from-PostgreSQL.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--muTNaNnA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://loizenai.com/wp-content/uploads/2020/08/Testcase-2-Nodejs-GET-request-Retrieve-all-records-from-PostgreSQL.png" alt="Testcase 2 – Nodejs Express PostgreSQL GET Request: get all data from PostgreSQL"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Testcase 3 – Nodejs Express PostgreSQL GET Request: get one data record from PostgreSQL with a given id
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--21Z2dIW4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://loizenai.com/wp-content/uploads/2020/08/Testcase-3-GET-request-retrieve-a-Customer-by-a-given-ID.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--21Z2dIW4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://loizenai.com/wp-content/uploads/2020/08/Testcase-3-GET-request-retrieve-a-Customer-by-a-given-ID.png" alt="Testcase 3 – Nodejs Express PostgreSQL GET Request: get one data record from PostgreSQL with a given id"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Testcase 4 – Nodejs Express PostgreSQL UPDATE request
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--DUV4ueb_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://loizenai.com/wp-content/uploads/2020/08/Testcase-4-Nodejs-PUT-request-Update-a-Customer-data-by-given-ID-to-PostgreSQL-database.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--DUV4ueb_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://loizenai.com/wp-content/uploads/2020/08/Testcase-4-Nodejs-PUT-request-Update-a-Customer-data-by-given-ID-to-PostgreSQL-database.png" alt="Testcase 4 – Nodejs Express PostgreSQL UPDATE request"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Testcase 5 – Nodejs Express PostgreSQL DELETE request: delete a record with a given id
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--xGw8o1qt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://loizenai.com/wp-content/uploads/2020/08/Testcase-5-Nodejs-Delete-request-Delete-a-Customer-by-given-ID-from-PostgreSQL-database.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--xGw8o1qt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://loizenai.com/wp-content/uploads/2020/08/Testcase-5-Nodejs-Delete-request-Delete-a-Customer-by-given-ID-from-PostgreSQL-database.png" alt="Testcase 5 – Nodejs Express PostgreSQL DELETE request: delete a record with a given id"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Testcase 6 – Nodejs Express PostgreSQL Filtering request by a field
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--TLk5b1Vz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://loizenai.com/wp-content/uploads/2020/08/Testcase-6-Filtering-Customer-by-Age-from-PostgreSQL-database.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--TLk5b1Vz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://loizenai.com/wp-content/uploads/2020/08/Testcase-6-Filtering-Customer-by-Age-from-PostgreSQL-database.png" alt="Testcase 6 – Nodejs Express PostgreSQL Filtering request by a field"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Testcase 7 – Nodejs Express PostgreSQL Pagination request
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_cZlukqE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://loizenai.com/wp-content/uploads/2020/08/Testcase-7-Nodejs-do-a-Pagination-Request-from-PostgreSQL-database.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_cZlukqE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://loizenai.com/wp-content/uploads/2020/08/Testcase-7-Nodejs-do-a-Pagination-Request-from-PostgreSQL-database.png" alt="Testcase 7 – Nodejs Express PostgreSQL Pagination request"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;What does it mean? We had done a pagination request to fetch a second page page = 1 with a size of page is 7 (limit=7)&lt;/p&gt;

&lt;p&gt;The RestAPI returns a json result with useful informantion as below:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;totalItems describes the number of records in database&lt;/li&gt;
&lt;li&gt;totalPages describes the total number of pages with requested limit&lt;/li&gt;
&lt;li&gt;limit describes the number of items for a fetching page&lt;/li&gt;
&lt;li&gt;currentPageNumber is the order number of requested page (currentPageNumber = page + 1)&lt;/li&gt;
&lt;li&gt;currentPageSize is the size of the current page (currentPageSize &amp;lt;= limit)&lt;/li&gt;
&lt;li&gt;customers is a dataset attached with the pagination request&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Using Native PostgreSQL query with LIMIT statement to check the above result:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--76QlSeHm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://loizenai.com/wp-content/uploads/2020/08/Check-the-Pagination-using-Native-PostgreSQL-Query-with-Offset-Limit-Statement.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--76QlSeHm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://loizenai.com/wp-content/uploads/2020/08/Check-the-Pagination-using-Native-PostgreSQL-Query-with-Offset-Limit-Statement.png" alt="Check the Pagination using Native PostgreSQL Query with Offset &amp;amp; Limit Statement"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Testcase 8 - Nodejs Express PostgreSQL Pagination Filtering and Sorting request
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--MTj3jC9Z--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://loizenai.com/wp-content/uploads/2020/08/Testcase-8-Nodejs-RestAPI-PaginationFilteringSorting-PostgreSQL-database.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--MTj3jC9Z--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://loizenai.com/wp-content/uploads/2020/08/Testcase-8-Nodejs-RestAPI-PaginationFilteringSorting-PostgreSQL-database.png" alt="Testcase 8 - Nodejs Express PostgreSQL Pagination Filtering and Sorting request"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;What does it mean? - The above request had done with 3 proccessing steps:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Do the Filtering with age=23, and We just have 4 Customer items in database having age is 23 so returned totalItems is 4. The totalPages is 2 because of 2 reason:&lt;/li&gt;
&lt;li&gt;limit: 3&lt;/li&gt;
&lt;li&gt;and totalPages = Math.ceil(data.count / limit) = Math.ceil(4 / 3)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--eCiDk4_7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://loizenai.com/wp-content/uploads/2020/08/Check-Filtering-PostgreSQL-records-by-Native-Query.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--eCiDk4_7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://loizenai.com/wp-content/uploads/2020/08/Check-Filtering-PostgreSQL-records-by-Native-Query.png" alt="Check Filtering PostgreSQL records by Native Query"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Do the pagination with offset = 0 (limit*page) and row_counts = 3:&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--fj3lcZD_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://loizenai.com/wp-content/uploads/2020/08/Check-the-Pagination-using-Native-PostgreSQL-Query-with-Offset-Limit-Statement-1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fj3lcZD_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://loizenai.com/wp-content/uploads/2020/08/Check-the-Pagination-using-Native-PostgreSQL-Query-with-Offset-Limit-Statement-1.png" alt="Check the Pagination using Native PostgreSQL Query with Offset &amp;amp; Limit Statement"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Finally Do the Sorting by firstname with ascending order and lastname with descending order:&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--g2P5sKtp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://loizenai.com/wp-content/uploads/2020/08/PosgreSQL-Pagination-Filtering-Sorting-by-Native-Query.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--g2P5sKtp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://loizenai.com/wp-content/uploads/2020/08/PosgreSQL-Pagination-Filtering-Sorting-by-Native-Query.png" alt="PosgreSQL Pagination Filtering Sorting by Native Query"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Related post
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://loizenai.com/angular-10-node-js-mysql-crud-application-example-fullstack-tutorials-with-express-restapis-sequelize-orm/"&gt;Angular 10 Node.js MySQL CRUD Example&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://loizenai.com/nodejs-token-based-authentication-jwt-json-web-tokens-authentication-mysql-example/"&gt;Token Based Authentication in Node.js using JWT (JSON Web Tokens) + MySQL Example&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://loizenai.com/nodejs-restapis-upload-download-multiple-excel-files-to-mysql-postgresql/"&gt;Nodejs RestAPIs Upload Download Multiple Excel Files&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>node</category>
      <category>postgres</category>
      <category>crud</category>
      <category>example</category>
    </item>
    <item>
      <title>Angular 11 Spring Boot PostgreSQL CRUD Example</title>
      <dc:creator>ozenero.com</dc:creator>
      <pubDate>Thu, 17 Dec 2020 14:01:59 +0000</pubDate>
      <link>https://dev.to/ozenero/angular-11-spring-boot-postgresql-crud-example-3bhn</link>
      <guid>https://dev.to/ozenero/angular-11-spring-boot-postgresql-crud-example-3bhn</guid>
      <description>&lt;h1&gt;
  
  
  Angular 11 Spring Boot PostgreSQL CRUD Example
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://loizenai.com/angular-11-spring-boot-postgresql-crud-example/" rel="noopener noreferrer"&gt;https://loizenai.com/angular-11-spring-boot-postgresql-crud-example/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F12%2FAngular-SpringBoot-CRUD-PostgreSQL-Example.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F12%2FAngular-SpringBoot-CRUD-PostgreSQL-Example.png" alt="Angular 11 Spring Boot PostgreSQL CRUD Example"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the tutorial, I introduce how to create an “SpringBoot Angular Postgresql CRUD Example” with POST/GET/PUT/DELETE requests to SpringBoot RestAPIs.&lt;/p&gt;

&lt;p&gt;– Design overview system by Architecture Diagram that includes: Angular Client, SpringBoot RestAPIs, and Postgresql database.&lt;br&gt;
– Implement Angular CRUD Client with Angular built-in HttpClient to communicate with server side.&lt;br&gt;
– Implement SpringBoot RestAPIs that gets data from Postgresql using Spring Data JPA and returns back data as Json format to requested Angular Client.&lt;/p&gt;

&lt;h2&gt;
  
  
  Overall Angular 11 Spring Boot Postgresql CRUD Architecture Application
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F06%2FOverall-Architecture-Angular-CRUD-Application-with-SpringBoot-Fullstack-Example.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F06%2FOverall-Architecture-Angular-CRUD-Application-with-SpringBoot-Fullstack-Example.png" alt="Overall Angular 11 Spring Boot Postgresql CRUD Architecture Application"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We build backend SpringBoot Application that provides RestAPIs for POST/GET/PUT/DELETE Customer entities and store them in Postgresql/PostgreSQL database.&lt;br&gt;
We implement Angular Application that use Angular HTTPClient to interact (call/receive requests) with SpringBoot backend and display corresponding page view in browser.&lt;/p&gt;

&lt;h2&gt;
  
  
  Overview Spring Boot CRUD Postgresql Backend Architecture
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F06%2FSpringBoot-RestAPIs-Backend-Architecture-Design.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F06%2FSpringBoot-RestAPIs-Backend-Architecture-Design.png" alt="Overview Spring Boot CRUD Postgresql Backend Architecture"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For building RestAPIs in SpringBoot application, we use Spring MVC Web.&lt;br&gt;
For interacting with database Postgresql/PostgreSQL, we use Spring JPA.&lt;br&gt;
We implement RestAPI’s URL in RestAPIController.java file to process bussiness logic.&lt;br&gt;
For manipulating database’s records, we define a JPA model for mapping field data and use a JPA CRUD repository to do CRUD operation with Postgresql/PostgreSQL.&lt;/p&gt;

&lt;p&gt;– SpringBoot Project Structure&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F06%2FSpringBoot-Backend-Project-Structure.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F06%2FSpringBoot-Backend-Project-Structure.png" alt="SpringBoot Project Structure"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;models package defines Customer model and Message response class.&lt;br&gt;
repository package defines Spring JPA repository class CustomerRepository to do CRUD operation with database.&lt;br&gt;
service package defines a middleware class CustomerServices between Controller and Repository.&lt;br&gt;
controller package defines a RestAPI Controller RestAPIController to handle POST/GET/PUT/DELETE request.&lt;/p&gt;

&lt;h2&gt;
  
  
  Overview Angular CRUD Architecture Design
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F06%2FAngular-CRUD-Application-Frontend-Design-Architecture.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F06%2FAngular-CRUD-Application-Frontend-Design-Architecture.png" alt="Overview Angular CRUD Architecture Design"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Angular CRUD Application (in “Angular 11 Spring Boot PostgreSQL CRUD Tutorial”) is designed with 3 main layers:&lt;/p&gt;

&lt;p&gt;Service Layer is used to define Angular Common Services and HttpClient Services to interact with RestAPIs&lt;br&gt;
Component Layer is used to define Angular Components to show views in Browser for interacting with Users&lt;br&gt;
Router Layer is used to route URLs mapping with the corresponding Angular Components&lt;/p&gt;

&lt;p&gt;Angular Project Structure:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F06%2FAngular-CRUD-Application-Project-Structure-1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F06%2FAngular-CRUD-Application-Project-Structure-1.png" alt="Angular Project Structure:"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Angular CRUD Application defines 3 components, 2 services, 1 routers, and 2 data models:&lt;/p&gt;

&lt;p&gt;– Components:&lt;/p&gt;

&lt;p&gt;add-customer component is used to add a new customer to system&lt;br&gt;
list-customer component is used to show all customers on view pages, delete a customer and update a customer&lt;br&gt;
message component is used to define a view to show logging message on browser&lt;br&gt;
– Services:&lt;/p&gt;

&lt;p&gt;customer.service.ts defines POST/GET/PUT/DELETE HTTP requests to SpringBoot RestAPIs with the built-in Angular HttpClient.&lt;br&gt;
message.service.ts defines an array storage to log all messages when Angular CRUD App running&lt;/p&gt;

&lt;p&gt;– Router: app-routing.module.ts defines how to map a corresponding Angular component with an URL.&lt;/p&gt;

&lt;p&gt;– Models:&lt;/p&gt;

&lt;p&gt;customer.ts defines the main data model of our application.&lt;br&gt;
message.ts defines the response data model between SpringBoot and Angular application.&lt;/p&gt;

&lt;h2&gt;
  
  
  Goal – Angular SpringBoot CRUD Postgresql
&lt;/h2&gt;

&lt;p&gt;– Add new Customer: from Angular to SpringBoot and save to Postgresql.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F06%2FAngular-CRUD-App-Add-new-customers.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F06%2FAngular-CRUD-App-Add-new-customers.png" alt="Angular CRUD App – Add new customers"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;– List All Customers: from Angular calls SpringBoot RestAPI to get customer from Postgresql.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F06%2FAngular-CRUD-Application-List-All-Customer.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F06%2FAngular-CRUD-Application-List-All-Customer.png" alt="List All Customers: from Angular calls SpringBoot RestAPI to get customer from Postgresql."&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;– Details a Customer: from Angular calls get http request from SpringBoot RestAPI to get a record in Postgresql database&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F06%2FAngular-CRUD-App-Details-a-Customer.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F06%2FAngular-CRUD-App-Details-a-Customer.png" alt="– Details a Customer: from Angular calls get http request from SpringBoot RestAPI to get a record in Postgresql database"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;– Update a Customer: from Angular calls a put http request from SpringBoot RestAPI to update a record in Postgresql database.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F06%2FAngular-CRUD-Application-Update-a-Customer.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F06%2FAngular-CRUD-Application-Update-a-Customer.png" alt="– Update a Customer: from Angular calls a put http request from SpringBoot RestAPI to update a record in Postgresql database."&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;– Delete a Customer: from Angular calls a delete http request from SpringBoot RestAPI to delete a record in Postgresql database.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F06%2FAngular-CRUD-App-Delete-a-Customer-successfully.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F06%2FAngular-CRUD-App-Delete-a-Customer-successfully.png" alt="Angular CRUD SpringBoot Postgresql App – Delete a Customer successfully"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;– Check database records: do a get request from Angular to SpringBoot RestAPI.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F06%2FAngular-CRUD-App-Check-database-records.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F06%2FAngular-CRUD-App-Check-database-records.png" alt="Angular CRUD App – Check database records"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Video Guide – Angular SpringBoot CRUD Postgresql Example FullStack DEBUG
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://youtu.be/848fOT3Jt44" rel="noopener noreferrer"&gt;https://youtu.be/848fOT3Jt44&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Related posts
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://loizenai.com/spring-boot-security-jwt-authentication-example-Postgresql-postgresql-spring-jpa-restapis/" rel="noopener noreferrer"&gt;Spring Boot Security JWT Authentication Example&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://loizenai.com/spring-boot-security-jwt-authentication-example-Postgresql-postgresql-spring-jpa-restapis/" rel="noopener noreferrer"&gt;Angular Spring Boot JWT Authentication Example&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://loizenai.com/angular-django-crud-restapis-application-examples-fullstack-angular-10-django-Postgresql-postgresql/" rel="noopener noreferrer"&gt;Angular Django CRUD RestAPIs Application Examples&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://loizenai.com/angular-10-nodejs-postgresql-crud-example-using-express-restapis-sequelize-tutorial/" rel="noopener noreferrer"&gt;Angular 10 Nodejs PostgreSQL CRUD Example&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>angular11</category>
      <category>springboot</category>
      <category>postgres</category>
      <category>crud</category>
    </item>
    <item>
      <title>Reactjs JWT Authentication Example</title>
      <dc:creator>ozenero.com</dc:creator>
      <pubDate>Thu, 17 Dec 2020 13:50:25 +0000</pubDate>
      <link>https://dev.to/ozenero/reactjs-jwt-authentication-example-1297</link>
      <guid>https://dev.to/ozenero/reactjs-jwt-authentication-example-1297</guid>
      <description>&lt;p&gt;&lt;a href="https://loizenai.com/reactjs-jwt-authentication-example/" rel="noopener noreferrer"&gt;https://loizenai.com/reactjs-jwt-authentication-example/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.youtube.com/watch?v=dTR-41_jMvc&amp;amp;t=4s" rel="noopener noreferrer"&gt;https://www.youtube.com/watch?v=dTR-41_jMvc&amp;amp;t=4s&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.youtube.com/watch?v=y-i52oP-l_E&amp;amp;t=21s" rel="noopener noreferrer"&gt;https://www.youtube.com/watch?v=y-i52oP-l_E&amp;amp;t=21s&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Reactjs JWT Authentication Example
&lt;/h1&gt;

&lt;p&gt;Tutorial: Reactjs JWT Token Authentication Example&lt;/p&gt;

&lt;p&gt;JSON Web Token (JWT) is an open standard (RFC 7519) that defines a compact and self-contained way for securely transmitting information between parties as a JSON object. So in the tutorial, I introduce how to implement an application “Reactjs JWT token Authentication Example” with details step by step and 100% running sourcecode.&lt;/p&gt;

&lt;p&gt;– I give you an Epic of the application, a fullstack excutive flow from frontend to backend with overall architecture diagram.&lt;br&gt;
– I give you a layer diagram of Reactjs JWT Application.&lt;br&gt;
– I give you an implementatin of security backend sourcecode (SpringBoot + Nodejs JWT RestAPIs).&lt;br&gt;
– I guide you step by step how to develop a Reactjs JWT Authentication application.&lt;br&gt;
– Finally, I do an integrative testing from Reactjs JWT Authentication application to Backend Security RestAPIs&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F11%2FReactjs-Jwt-Authentication-Example.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F11%2FReactjs-Jwt-Authentication-Example.png" alt="Reactjs JWT Authentication Example"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Overall Epic System Architecture Diagram
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F11%2FReactjs-JWT-Authentication-Overall-Diagram.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F11%2FReactjs-JWT-Authentication-Overall-Diagram.png" alt="Reactjs JWT Authentication Overall Diagram"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For the Reactjs JWT Authentication tutorial, we have 2 projects:&lt;br&gt;
– Backend project (using SpringBoot or Nodejs Express) provides secured RestAPIs with JWT token.&lt;br&gt;
– Reactjs project will request RestAPIs from Backend system with the JWT Token Authentication implementation.&lt;/p&gt;

&lt;h2&gt;
  
  
  JWT Authentication Sequence Diagram
&lt;/h2&gt;

&lt;p&gt;The diagram below show how our system handles User Registration and User Login processes:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F11%2FReactjs-Jwt-Authentication-Working-Process-Diagram.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F11%2FReactjs-Jwt-Authentication-Working-Process-Diagram.png" alt="Reactjs Jwt Authentication Working Process Diagram"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;User Registration Phase:&lt;br&gt;
– User uses a React.js register form to post user’s info (name, username, email, role, password) to Backend API /api/auth/signup.&lt;br&gt;
– Backend will check the existing users in database and save user’s signup info to database. Finally, It will return a message (successfully or fail) to&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;User Login Phase:&lt;br&gt;
– User posts user/password to signin to Backend RestAPI /api/auth/signin.&lt;br&gt;
– Backend will check the username/password, if it is right, Backend will create and JWT string with secret then return it to Reactjs client.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;After signin, user can request secured resources from backend server by adding the JWT token in Authorization Header. For each request, backend will check the JWT signature and then returns back the resources based on user’s registered authorities.&lt;/p&gt;

&lt;h2&gt;
  
  
  Reactjs JWT Authentication Layer Diagram Overview
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F11%2FReactjs-JWT-Authentication-Layer-Diagram-final-version-2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F11%2FReactjs-JWT-Authentication-Layer-Diagram-final-version-2.png" alt="Reactjs JWT Authentication – Layer Diagram"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Reactjs JWT Authentication would be built with 5 main kind blocks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reactjs Router is a standard library for routing in React. It enables the navigation among views of various components in a React Application, allows changing the browser URL, and keeps the UI in sync with the URL.&lt;/li&gt;
&lt;li&gt;Reactjs Components let you split the UI into independent, reusable pieces, and think about each piece in isolation.&lt;/li&gt;
&lt;li&gt;Reactjs Service is a bridge between Reactjs Component and Backend Server, it is used to do technical logic with Backend Server (using Ajax Engine to fetch data from Backend, or using Local Storage to save user login data) and returned a response data to React.js Components&lt;/li&gt;
&lt;li&gt;Local Storage allow to save key/value pairs in a web browser. It is a place to save the login user’s info.&lt;/li&gt;
&lt;li&gt;Axios – (an Ajax Engine) is a promise-based HTTP client for the browser and Node. js. Axios makes it easy to send asynchronous HTTP requests to REST endpoints and perform CRUD operations.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Project Goal
&lt;/h2&gt;

&lt;p&gt;We create a Reactjs JWT Authentication project as below:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F11%2FReactjs-Jwt-Authentication-project-structure.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F11%2FReactjs-Jwt-Authentication-project-structure.png" alt="Reactjs Jwt Authentication project structure"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It includes 8 components and 2 services and a router in app.js file.&lt;/p&gt;

&lt;p&gt;– Home page:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F11%2FReactjs-Home-Page.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F11%2FReactjs-Home-Page.png" alt="Home page"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;– User Register page:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F11%2FReactjs-Jwt-Authentication-Register-Form.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F11%2FReactjs-Jwt-Authentication-Register-Form.png" alt="User Register page"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;– Login Page:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F11%2Freactjs-jwt-authentication-wrong-login-user-validation.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F11%2Freactjs-jwt-authentication-wrong-login-user-validation.png" alt="Login page"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;– Profile Page:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F11%2FReactjs-jwt-authentication-sign-in-successfully.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F11%2FReactjs-jwt-authentication-sign-in-successfully.png" alt="profile page"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;– Use Page:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F11%2FReactjs-jwt-authentication-User-Page-Content.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F11%2FReactjs-jwt-authentication-User-Page-Content.png" alt="User page"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;– Project Manager Page:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F11%2FReatjs-jwt-authentication-login-with-a-user-with-PM-roles-successfully.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F11%2FReatjs-jwt-authentication-login-with-a-user-with-PM-roles-successfully.png" alt="Project Manager Page"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;– Reactjs Admin page:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F11%2FReactjs-jwt-authentication-admin-page.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F11%2FReactjs-jwt-authentication-admin-page.png" alt="Reactjs Admin page"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Related posts
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://loizenai.com/integrate-reactjs-nodejs-tutorial/" rel="noopener noreferrer"&gt;How to Integrate Reactjs with Nodejs Tutorial&lt;/a&gt;&lt;br&gt;
&lt;a href="https://loizenai.com/springboot-reactjs-mongodb-crud/" rel="noopener noreferrer"&gt;Tutorial: SpringBoot + React + MongoDB – SpringBoot React.js CRUD Example&lt;/a&gt;&lt;br&gt;
&lt;a href="https://loizenai.com/angular-10-nodejs-jwt-authentication-mysql-examples-tutorials/" rel="noopener noreferrer"&gt;Angular 10 + Nodejs JWT Token Based Authentication with MySQL Example – Express RestAPIs + JWT + BCryptjs + Sequelize&lt;/a&gt;&lt;/p&gt;

</description>
      <category>react</category>
      <category>jwt</category>
      <category>authentication</category>
      <category>example</category>
    </item>
    <item>
      <title>Angular Spring Boot Jwt Authentication Example </title>
      <dc:creator>ozenero.com</dc:creator>
      <pubDate>Thu, 17 Dec 2020 13:48:49 +0000</pubDate>
      <link>https://dev.to/ozenero/angular-10-spring-boot-jwt-authentication-example-1cmh</link>
      <guid>https://dev.to/ozenero/angular-10-spring-boot-jwt-authentication-example-1cmh</guid>
      <description>&lt;p&gt;Youtube Link: [&lt;a href="https://youtu.be/7ZfInOvFsz0" rel="noopener noreferrer"&gt;https://youtu.be/7ZfInOvFsz0&lt;/a&gt;]&lt;/p&gt;

&lt;p&gt;&lt;a href="https://loizenai.com/angular-10-spring-boot-jwt-authentication-example/" rel="noopener noreferrer"&gt;https://loizenai.com/angular-10-spring-boot-jwt-authentication-example/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Tutorial: Angular 10 Spring Boot JWT Authentication Example with Angular 10 + MySQl + Spring Security&lt;/p&gt;

&lt;p&gt;In tutorial ‘Angular 11 Spring Boot JWT Token Based Authentication Example’, I guide you very clearly how to implement full stack example to demonistrade an jwt token based authentication flow from frontend Angular 11 to backend: SpringBoot and MySQL.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Technology Stack: Angular11, SpringBoot, Jwt, SpringBoot, MySQL, PostgreSQL, Spring Security, Spring JPA&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;– I give you an Epic of the application, a fullstack excutive flow from frontend Angular 11 to backend jwt SpringBoot Security to database (MySQL/PostgreSQL) with overall architecture diagram.&lt;br&gt;
– I give you a layer diagram of Angular 11 Jwt Authentication application with localStorage and Angular HttpClient (plus Interceptor)&lt;br&gt;
– I guide you detail-steps how to implement a security SpringBoot Jwt Token Authentication.&lt;br&gt;
– I guide you step by step how to develop a Angular 11 Jwt Authentication application.&lt;br&gt;
– Finally, I do an integrative testing from Angular 11 to Jwt Based Token SpringBoot Security RestApis.&lt;/p&gt;

&lt;h2&gt;
  
  
  Overview Angular 11 Spring Boot JWT Authentication example
&lt;/h2&gt;

&lt;p&gt;We will build an application, from frontend (Angular 11) to backend (Spring Boot), which allows users to register, login account. This application is secured with JWT (JSON Web Token) authentication and Spring Security. Then, depending on the role of current User (user, pm or admin), this system accepts what he can access:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F05%2FAngular-Login-Form.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F05%2FAngular-Login-Form.png" alt="Overview Angular 11 Spring Boot JWT Authentication example"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F05%2FRegister-Form.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F05%2FRegister-Form.png" alt="Register Form"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F05%2FHome-Page-of-Jack-User.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F05%2FHome-Page-of-Jack-User.png" alt="Home Page of Jack User"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F05%2FContent-of-Jack-User.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F05%2FContent-of-Jack-User.png" alt="Content of Jack User"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The diagram below show how our system handles User Registration and User Login processes:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F05%2FAngular-Spring-Boot-Security-Jwt-Authentication-Work-Process-Diagram.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F05%2FAngular-Spring-Boot-Security-Jwt-Authentication-Work-Process-Diagram.png" alt="Angular Spring Boot Security Jwt Authentication Work Process Diagram"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is diagram for SpringBoot Token based authentication Security/JWT classes that are separated into 3 layers:&lt;br&gt;
– HTTP&lt;br&gt;
– Spring Security&lt;br&gt;
– REST API&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F05%2FSpring-Boot-Angular-Spring-Security-Jwt-Authentication-Architecture-Diagram-Back-End-Server.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F05%2FSpring-Boot-Angular-Spring-Security-Jwt-Authentication-Architecture-Diagram-Back-End-Server.png" alt="Spring Boot Angular Spring Security Jwt Authentication Architecture Diagram Back End Server"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;– SecurityContextHolder provides access to the SecurityContext.&lt;br&gt;
– SecurityContext holds the Authentication and possibly request-specific security information.&lt;br&gt;
– Authentication represents the principal which includes GrantedAuthority that reflects the application-wide permissions granted to a principal.&lt;br&gt;
– UserDetails contains necessary information to build an Authentication object from DAOs or other source of security data.&lt;br&gt;
– UserDetailsService helps to create a UserDetails from a String-based username and is usually used by AuthenticationProvider.&lt;br&gt;
– JwtAuthTokenFilter (extends OncePerRequestFilter) pre-processes HTTP request, from Token, create Authentication and populate it to SecurityContext.&lt;br&gt;
– JwtProvider validates, parses token String or generates token String from UserDetails.&lt;br&gt;
– UsernamePasswordAuthenticationToken gets username/password from login Request and combines into an instance of Authentication interface.&lt;br&gt;
– AuthenticationManager uses DaoAuthenticationProvider (with help of UserDetailsService &amp;amp; PasswordEncoder) to validate instance of UsernamePasswordAuthenticationToken, then returns a fully populated Authentication instance on successful authentication.&lt;br&gt;
– SecurityContext is established by calling SecurityContextHolder.getContext().setAuthentication(…​) with returned authentication object above.&lt;br&gt;
– AuthenticationEntryPoint handles AuthenticationException.&lt;br&gt;
– Access to Restful API is protected by HTTPSecurity and authorized with Method Security Expressions.&lt;/p&gt;

&lt;p&gt;In the tutorial, “Angular 11 Spring Boot JWT Authentication Example”, we need the Angular HTTP Interceptor to add JWT Authentication Token Based for Security:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F05%2FSpringBoot-Angular-Spring-Security-Jwt-Authentication-Architecture-Diagram-Front-End-Client.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F05%2FSpringBoot-Angular-Spring-Security-Jwt-Authentication-Architecture-Diagram-Front-End-Client.png" alt="SpringBoot Angular Spring Security Jwt Authentication Architecture Diagram Front End Client"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;– app.component is the parent component that contains routerLink and router-outlet for routing. It also has an authority variable as the condition for displaying items on navigation bar.&lt;br&gt;
– user.component, pm.component, admin.component correspond to Angular Components for User Board, PM Board, Admin Board. Each Board uses user.service to access authority data.&lt;br&gt;
– register.component contains User Registration form, submission of the form will call auth.service.&lt;br&gt;
– login.component contains User Login form, submission of the form will call auth.service and token-storage.service.&lt;/p&gt;

&lt;p&gt;– user.service gets access to authority data from Server using Angular HttpClient ($http service).&lt;br&gt;
– auth.service handles authentication and signup actions with Server using Angular HttpClient ($http service).&lt;br&gt;
– every HTTP request by $http service will be inspected and transformed before being sent to the Server by auth-interceptor (implements HttpInterceptor).&lt;br&gt;
– auth-interceptor check and get Token from token-storage.service to add the Token to Authorization Header of the HTTP Requests.&lt;/p&gt;

&lt;p&gt;– token-storage.service manages Token inside Browser’s sessionStorage.&lt;/p&gt;

&lt;h2&gt;
  
  
  Related post
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://loizenai.com/angular-crud-application-with-springboot-and-mysql-postgresql-restapis-fullstack-angular-httpclient-post-get-put-delete/" rel="noopener noreferrer"&gt;Angular CRUD Application with SpringBoot and MySQL/PostgreSQL RestAPIs – Fullstack Angular 10-9-8 HttpClient Post/Get/Put/Delete&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://loizenai.com/build-springboot-crud-application-fullstack-frontend-bootstrap-and-ajax-to-backend-springboot-and-mysql-postgresql-database/" rel="noopener noreferrer"&gt;Build SpringBoot CRUD Application – FullStack: Frontend (Bootstrap and Ajax) to Backend (SpringBoot and MySQL/PostgreSQL database)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://loizenai.com/angular-nodejs-fullstack-crud-application-with-mysql-postgresql-angular-10-9-8-httpclient-client-nodejs-express-sequelize-orm/" rel="noopener noreferrer"&gt;Angular Nodejs Fullstack CRUD Application with MySQL/PostgreSQL – Angular 10-9-8 HttpClient + Nodejs Express, Sequelize ORM&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://loizenai.com/spring-boot-security-jwt-authentication-example-mysql-postgresql-spring-jpa-restapis/" rel="noopener noreferrer"&gt;SpringBoot Jwt Authentication Example&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;YOUTUBE: [&lt;a href="https://youtu.be/7ZfInOvFsz0" rel="noopener noreferrer"&gt;https://youtu.be/7ZfInOvFsz0&lt;/a&gt;]&lt;br&gt;
Post Link: &lt;a href="https://loizenai.com/angular-10-spring-boot-jwt-authentication-example/" rel="noopener noreferrer"&gt;https://loizenai.com/angular-10-spring-boot-jwt-authentication-example/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>angular</category>
      <category>springboot</category>
      <category>jwt</category>
      <category>authentication</category>
    </item>
    <item>
      <title>Jwt Springboot Reactjs Token Authentication Example - React.js Spring Security Login</title>
      <dc:creator>ozenero.com</dc:creator>
      <pubDate>Thu, 10 Dec 2020 17:23:03 +0000</pubDate>
      <link>https://dev.to/ozenero/jwt-springboot-reactjs-token-authentication-example-react-js-spring-security-login-4755</link>
      <guid>https://dev.to/ozenero/jwt-springboot-reactjs-token-authentication-example-react-js-spring-security-login-4755</guid>
      <description>&lt;h1&gt;
  
  
  Jwt Springboot Reactjs Token Authentication Example - React.js Spring Security Login
&lt;/h1&gt;

&lt;p&gt;Tutorial Link: &lt;a href="https://loizenai.com/reactjs-springboot-jwt-token-authentication/" rel="noopener noreferrer"&gt;https://loizenai.com/reactjs-springboot-jwt-token-authentication/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F11%2FReactjs-SpringBoot-Jwt-Token-Authentication-Example.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F11%2FReactjs-SpringBoot-Jwt-Token-Authentication-Example.png" alt="Jwt-springboot-reactjs-token-authentication-example"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;JSON Web Token (JWT) is an open standard (RFC 7519) that defines a compact and self-contained way for securely transmitting information between parties as a JSON object. And “How to build Reactjs Jwt SpringBoot Token Based Authentication Example?” is one of the most common questions for SpringBoot Java development world. So in the tutorial, I introduce how to implement an application “Reactjs JWT SpringBoot token Authentication Example” with details step by step and 100% running sourcecode.&lt;/p&gt;

&lt;p&gt;– I give you an Epic of the application, a fullstack excutive flow from frontend to backend with overall architecture diagram.&lt;br&gt;
– I give you a layer diagram of Reactjs JWT Application.&lt;br&gt;
– I guide you detail-steps how to implement a security Jwt Token SpringBoot backend.&lt;br&gt;
– I guide you step by step how to develop a Reactjs JWT Authentication application.&lt;br&gt;
– Finally, I do an integrative testing from Reactjs JWT Authentication application to jwt SpringBoot Security RestAPIs.&lt;/p&gt;

&lt;h2&gt;
  
  
  Overall System Architecture Diagram
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F11%2FReactjs-JWT-Authentication-Overall-Diagram-1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F11%2FReactjs-JWT-Authentication-Overall-Diagram-1.png" alt="Overall System Architecture Diagram"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For the Reactjs JWT Authentication tutorial, we have 2 projects:&lt;br&gt;
– Backend project (using SpringBoot or Nodejs Express) provides secured RestAPIs with JWT token.&lt;br&gt;
– Reactjs project will request RestAPIs from Backend system with the JWT Token Authentication implementation.&lt;/p&gt;

&lt;h2&gt;
  
  
  JWT Authentication Sequence Diagram
&lt;/h2&gt;

&lt;p&gt;The diagram below show how our system handles User Registration and User Login processes:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F11%2FReactjs-Jwt-Authentication-Working-Process-Diagram-1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F11%2FReactjs-Jwt-Authentication-Working-Process-Diagram-1.png" alt="JWT Authentication Sequence Diagram"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;User Registration Phase:&lt;br&gt;
– User uses a React.js register form to post user’s info (name, username, email, role, password) to Backend API /api/auth/signup.&lt;br&gt;
– Backend will check the existing users in database and save user’s signup info to database. Finally, It will return a message (successfully or fail) to&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;User Login Phase:&lt;br&gt;
– User posts user/password to signin to Backend RestAPI /api/auth/signin.&lt;br&gt;
– Backend will check the username/password, if it is right, Backend will create and JWT string with secret then return it to Reactjs client.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;After signin, user can request secured resources from backend server by adding the JWT token in Authorization Header. For each request, backend will check the JWT signature and then returns back the resources based on user’s registered authorities.&lt;/p&gt;

&lt;h2&gt;
  
  
  Reactjs JWT Authentication Diagram Overview
&lt;/h2&gt;

&lt;p&gt;Reactjs JWT Authentication would be built with 5 main kind blocks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reactjs Router is a standard library for routing in React. It enables the navigation among views of various components in a React Application, allows changing the browser URL, and keeps the UI in sync with the URL.&lt;/li&gt;
&lt;li&gt;Reactjs Components let you split the UI into independent, reusable pieces, and think about each piece in isolation.&lt;/li&gt;
&lt;li&gt;Reactjs Service is a bridge between Reactjs Component and Backend Server, it is used to do technical logic with Backend Server (using Ajax Engine to fetch data from Backend, or using Local Storage to save user login data) and returned a response data to React.js Components&lt;/li&gt;
&lt;li&gt;Local Storage allow to save key/value pairs in a web browser. It is a place to save the login user’s info.&lt;/li&gt;
&lt;li&gt;Axios – (an Ajax Engine) is a promise-based HTTP client for the browser and Node. js. Axios makes it easy to send asynchronous HTTP requests to REST endpoints and perform CRUD operations.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Jwt SpringBoot Token Security RestAPIs Diagram Overview
&lt;/h2&gt;

&lt;p&gt;This is diagram for Spring Security/JWT (Springboot Token Based Authentication Example) classes that are separated into 3 layers:&lt;br&gt;
– HTTP&lt;br&gt;
– Spring Security&lt;br&gt;
– REST API&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F11%2FSpring-Security-Jwt-Token-Authentication-Architecture-Diagram-1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F11%2FSpring-Security-Jwt-Token-Authentication-Architecture-Diagram-1.png" alt="Jwt SpringBoot Token Security RestAPIs Diagram Overview"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Look at the diagram above, we can easily associate these components with Spring Security Authentication process: receive HTTP request, filter, authenticate, store Authentication data, generate token, get User details, authorize, handle exception…&lt;/p&gt;

&lt;p&gt;At a glance:&lt;br&gt;
– SecurityContextHolder provides access to the SecurityContext.&lt;br&gt;
– SecurityContext holds the Authentication and possibly request-specific security information.&lt;br&gt;
– Authentication represents the principal which includes GrantedAuthority that reflects the application-wide permissions granted to a principal.&lt;br&gt;
– UserDetails contains necessary information to build an Authentication object from DAOs or other source of security data.&lt;br&gt;
– UserDetailsService helps to create a UserDetails from a String-based username and is usually used by AuthenticationProvider.&lt;br&gt;
– JwtAuthTokenFilter (extends OncePerRequestFilter) pre-processes HTTP request, from Token, create Authentication and populate it to SecurityContext.&lt;br&gt;
– JwtProvider validates, parses token String or generates token String from UserDetails.&lt;br&gt;
– UsernamePasswordAuthenticationToken gets username/password from login Request and combines into an instance of Authentication interface.&lt;br&gt;
– AuthenticationManager uses DaoAuthenticationProvider (with help of UserDetailsService &amp;amp; PasswordEncoder) to validate instance of UsernamePasswordAuthenticationToken, then returns a fully populated Authentication instance on successful authentication.&lt;br&gt;
– SecurityContext is established by calling SecurityContextHolder.getContext().setAuthentication(…​) with returned authentication object above.&lt;br&gt;
– AuthenticationEntryPoint handles AuthenticationException.&lt;br&gt;
– Access to Restful API is protected by HTTPSecurity and authorized with Method Security Expressions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Project Goal
&lt;/h2&gt;

&lt;p&gt;We create a Reactjs JWT Authentication project as below:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://loizenai.com/wp-content/uploads/2020/11/Reactjs-Jwt-Authentication-project-structure-1.png" rel="noopener noreferrer"&gt;Reactjs Project structure&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It includes 8 components and 2 services and a router in app.js file.&lt;/p&gt;

&lt;p&gt;– Home page:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F11%2FReactjs-Home-Page-3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F11%2FReactjs-Home-Page-3.png" alt="Home Page"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;– User Register page:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F11%2FReactjs-JWT-Authentication-Register-Form-Validation-1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F11%2FReactjs-JWT-Authentication-Register-Form-Validation-1.png" alt="User Register page"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;– Login Page:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F11%2Freactjs-jwt-authentication-wrong-login-user-validation-3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F11%2Freactjs-jwt-authentication-wrong-login-user-validation-3.png" alt="Login Page"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;– Profile Page:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F11%2FReactjs-jwt-authentication-sign-in-successfully-2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F11%2FReactjs-jwt-authentication-sign-in-successfully-2.png" alt="Profile Page"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;– Use Page:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://loizenai.com/wp-content/uploads/2020/11/Reactjs-jwt-authentication-User-Page-Content-3.png" rel="noopener noreferrer"&gt;User page&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;– Project Manager Page:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F11%2FReactjs-JWT-Authentication-PM-Content-2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F11%2FReactjs-JWT-Authentication-PM-Content-2.png" alt="Project Manager Page"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;– Reactjs Admin page:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F11%2FReactjs-jwt-authentication-admin-page-3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Floizenai.com%2Fwp-content%2Fuploads%2F2020%2F11%2FReactjs-jwt-authentication-admin-page-3.png" alt="Reactjs Admin page"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Realated post
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://loizenai.com/angular-10-spring-boot-jwt-token-based-authentication-example-spring-security-mysql-database/" rel="noopener noreferrer"&gt;Angular 10 + Spring Boot JWT Token Based Authentication Example – Spring Security + MySQL&lt;/a&gt;&lt;br&gt;
&lt;a href="https://loizenai.com/angular-10-nodejs-jwt-authentication-mysql-examples-tutorials/" rel="noopener noreferrer"&gt;Angular 10 + Nodejs JWT Token Based Authentication with MySQL Example – Express RestAPIs + JWT + BCryptjs + Sequelize&lt;/a&gt;&lt;br&gt;
&lt;a href="https://loizenai.com/spring-boot-security-jwt-token-bsed-authentication-example-mysql-spring-jpa-restapis/" rel="noopener noreferrer"&gt;SpringBoot Token Based Authentication Example – MySQL + JWT+ Spring JPA + RestAPIs&lt;/a&gt;&lt;/p&gt;

</description>
      <category>springboot</category>
      <category>react</category>
      <category>jwt</category>
      <category>authentication</category>
    </item>
  </channel>
</rss>
