DEV Community

Cover image for Angular 11 + Node.js + PostgreSQL: CRUD example with Express Rest Apis
bezkoder
bezkoder

Posted on

12 3

Angular 11 + Node.js + PostgreSQL: CRUD example with Express Rest Apis

In this tutorial, I will show you how to build a full-stack (Angular 11 + Node.js + Express + PostgreSQL) example with a CRUD Application. The back-end server uses Node.js + Express for REST APIs, front-end side is an Angular App with HTTPClient.

Angular 11 + Node.js + PostgreSQL CRUD example

We will build a full-stack Tutorial Application in that:

  • Tutorial has id, title, description, published status.
  • User can create, retrieve, update, delete Tutorials.
  • There is a search box for finding Tutorials by title.
  • Here are screenshots of the example.

– Add an object:

Alt Text

– Retrieve all Tutorials:

Alt Text

– Click on Edit button to update a Tutorial:

Alt Text

On this Page, you can:

  • change status to Published using Publish button
  • delete the Tutorial using Delete button
  • update the Tutorial details with Update button

Alt Text

– Search Tutorials by title:

Alt Text

Full-stack CRUD App Architecture

We’re gonna build the application with following architecture:

Alt Text

– Node.js Express exports REST APIs & interacts with PostgreSQL Database using Sequelize ORM.
– Angular 11 Client sends HTTP Requests and retrieves HTTP Responses using HTTPClient, consume data on the components. Angular Router is used for navigating to pages.

Node.js Express back-end

These are APIs that Node.js Express App will export:

  • POST /api/tutorials create new Tutorial
  • GET /api/tutorials retrieve all Tutorials
  • GET /api/tutorials/:id retrieve a Tutorial by :id
  • PUT /api/tutorials/:id update a Tutorial by :id
  • DELETE /api/tutorials/:id delete a Tutorial by :id
  • DELETE /api/tutorials delete all Tutorials
  • GET /api/tutorials?title=[keyword] find all Tutorials which title contains keyword

Alt Text

db.config.js exports configuring parameters for PostgreSQL connection & Sequelize.
Express web server in server.js where we configure CORS, initialize & run Express REST APIs.
– Next, we add configuration for PostgreSQL database in models/index.js, create Sequelize data model in models/tutorial.model.js.
– Tutorial controller in controllers.
– Routes for handling all CRUD operations (including custom finder) in tutorial.routes.js.

Angular 11 front-end

Alt Text

– The App component is a container with router-outlet. It has navbar that links to routes paths via routerLink.
TutorialsList component gets and displays Tutorials.
Tutorial component has form for editing Tutorial's details based on :id.
AddTutorial component has form for submission new Tutorial.
– These Components call TutorialService methods which use Angular HTTPClient to make HTTP requests and receive responses.

Alt Text

Video

This is our Angular + Node.js PostgreSQL application demo and brief instruction, running with Express Rest Apis:

In the video, we use Angular 10, but the UI and logic are the same as this Angular version 11.

For more details, implementation and Github, please visit:
https://bezkoder.com/angular-11-node-js-express-postgresql/

Further Reading

Alt Text

  • Or Serverless with Firebase:

Angular 11 Firebase CRUD Realtime DB | AngularFireDatabase

Angular 11 Firestore CRUD example | AngularFireStore

Speedy emails, satisfied customers

Postmark Image

Are delayed transactional emails costing you user satisfaction? Postmark delivers your emails almost instantly, keeping your customers happy and connected.

Sign up

Top comments (0)

AWS Q Developer image

Your AI Code Assistant

Ask anything about your entire project, code and get answers and even architecture diagrams. Built to handle large projects, Amazon Q Developer works alongside you from idea to production code.

Start free in your IDE

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay