Skip to content

survoai/nodejs-application-with-postgres-db

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Node.js PostgreSQL CRUD example with Express Rest APIs

required .env with values

HOST=
USER=postgres
PASSWORD=
DB=testdb
DIALECT=postgres
POOL_MAX=5
POOL_MIN=0
POOL_ACQUIRE=30000
POOL_IDLE=10000

required .env with values for localhost

HOST=localhost
USER=postgres
PASSWORD=123
DB=testdb
DIALECT=postgres
POOL_MAX=5
POOL_MIN=0
POOL_ACQUIRE=30000
POOL_IDLE=10000

We will build Rest Apis that can create, retrieve, update, delete and find Tutorials by title.

The following table shows overview of the Rest APIs that will be exported:

  • GET api/tutorials get all Tutorials
  • GET api/tutorials/:id get Tutorial by id
  • POST api/tutorials add new Tutorial
  • PUT api/tutorials/:id update Tutorial by id
  • DELETE api/tutorials/:id remove Tutorial by id
  • DELETE api/tutorials remove all Tutorials
  • GET api/tutorials/published find all published Tutorials
  • GET api/tutorials?title=[kw] find all Tutorials which title contains 'kw'

Create a new Tutorial using POST /tutorials Api. Make sure to select BODY>RAW>JSON

node-js-postgresql-crud-example-create

After creating some new Tutorials, you can check PostgreSQL table:

 id |    title    |    description    | published |         createdAt          |         updatedAt
----+-------------+-------------------+-----------+----------------------------+----------------------------
  1 | Node Tut #1 | Tut#1 Description | f         | 2020-01-29 10:42:57.121+07 | 2020-01-29 10:42:57.121+07
  2 | Node Tut #2 | Tut#2 Description | f         | 2020-01-29 10:43:05.131+07 | 2020-01-29 10:43:05.131+07
  3 | Node Tut #3 | Tut#3 Description | f         | 2020-01-29 10:43:48.028+07 | 2020-01-29 10:43:48.028+07
  4 | Js Tut #4   | Tut#4 Desc        | f         | 2020-01-29 10:45:40.016+07 | 2020-01-29 10:45:40.016+07
  5 | Js Tut #5   | Tut#5 Desc        | f         | 2020-01-29 10:45:44.289+07 | 2020-01-29 10:45:44.289+07
  • Retrieve all Tutorials using GET /tutorials Api

node-js-postgresql-crud-example-retrieve-all

  • Retrieve a single Tutorial by id using GET /tutorials/:id Api

node-js-postgresql-crud-example-retrieve-one

  • Update a Tutorial using PUT /tutorials/:id Api

node-js-postgresql-crud-example-update

Check tutorials table after some rows were updated:

 id |     title      |    description    | published |         createdAt          |         updatedAt
----+----------------+-------------------+-----------+----------------------------+----------------------------
  1 | Node Tut #1    | Tut#1 Description | f         | 2020-01-29 10:42:57.121+07 | 2020-01-29 10:42:57.121+07
  3 | Node Tut #3    | Tut#3 Description | f         | 2020-01-29 10:43:48.028+07 | 2020-01-29 10:43:48.028+07
  2 | Node Js Tut #2 | Tut#2 Description | t         | 2020-01-29 10:43:05.131+07 | 2020-01-29 10:51:55.235+07
  4 | Js Tut #4      | Tut#4 Desc        | t         | 2020-01-29 10:45:40.016+07 | 2020-01-29 10:54:17.468+07
  5 | Js Tut #5      | Tut#5 Desc        | t         | 2020-01-29 10:45:44.289+07 | 2020-01-29 10:54:20.544+07
  • Find all Tutorials which title contains 'js': GET /tutorials?title=js

node-js-postgresql-crud-example-search

  • Find all published Tutorials using GET /tutorials/published Api

node-js-postgresql-crud-example-search-status

  • Delete a Tutorial using DELETE /tutorials/:id Api

node-js-postgresql-crud-example-delete-one

Tutorial with id=4 was removed from tutorials table:

 id |     title      |    description    | published |         createdAt          |         updatedAt
----+----------------+-------------------+-----------+----------------------------+----------------------------
  1 | Node Tut #1    | Tut#1 Description | f         | 2020-01-29 10:42:57.121+07 | 2020-01-29 10:42:57.121+07
  3 | Node Tut #3    | Tut#3 Description | f         | 2020-01-29 10:43:48.028+07 | 2020-01-29 10:43:48.028+07
  2 | Node Js Tut #2 | Tut#2 Description | t         | 2020-01-29 10:43:05.131+07 | 2020-01-29 10:51:55.235+07
  5 | Js Tut #5      | Tut#5 Desc        | t         | 2020-01-29 10:45:44.289+07 | 2020-01-29 10:54:20.544+07
  • Delete all Tutorials using DELETE /tutorials Api

node-js-postgresql-crud-example-delete-all

Now there are no rows in tutorials table:

 id | title | description | published | createdAt | updatedAt
----+-------+-------------+-----------+-----------+-----------

Project setup

npm install

Run

node server.js

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published