3
3
For instruction, please visit:
4
4
> [ Node.js CRUD Rest APIs with Express, Sequelize & PostgreSQL example] ( https://bezkoder.com/node-express-sequelize-postgresql/ )
5
5
6
+ We will build Rest Apis that can create, retrieve, update, delete and find Tutorials by title.
7
+
8
+ The following table shows overview of the Rest APIs that will be exported:
9
+
10
+ - GET ` api/tutorials ` get all Tutorials
11
+ - GET ` api/tutorials/:id ` get Tutorial by id
12
+ - POST ` api/tutorials ` add new Tutorial
13
+ - PUT ` api/tutorials/:id ` update Tutorial by id
14
+ - DELETE ` api/tutorials/:id ` remove Tutorial by id
15
+ - DELETE ` api/tutorials ` remove all Tutorials
16
+ - GET ` api/tutorials/published ` find all published Tutorials
17
+ - GET ` api/tutorials?title=[kw] ` find all Tutorials which title contains 'kw'
18
+
19
+ Front-end that works well with this Back-end
20
+ > [ Axios Client] ( https://www.bezkoder.com/axios-request/ )
21
+
22
+ > [ Angular 8] ( https://www.bezkoder.com/angular-crud-app/ ) / [ Angular 10] ( https://www.bezkoder.com/angular-10-crud-app/ ) / [ Angular 11] ( https://www.bezkoder.com/angular-11-crud-app/ ) / [ Angular 12] ( https://www.bezkoder.com/angular-12-crud-app/ ) / [ Angular 13] ( https://www.bezkoder.com/angular-13-crud-example/ ) / [ Angular 14] ( https://www.bezkoder.com/angular-14-crud-example/ ) / [ Angular 15] ( https://www.bezkoder.com/angular-15-crud-example/ ) / [ Angular 16] ( https://www.bezkoder.com/angular-16-crud-example/ )
23
+
24
+ > [ Vue 2 Client] ( https://www.bezkoder.com/vue-js-crud-app/ ) / [ Vue 3 Client] ( https://www.bezkoder.com/vue-3-crud/ ) / [ Vuetify Client] ( https://www.bezkoder.com/vuetify-data-table-example/ )
25
+
26
+ > [ React Client] ( https://www.bezkoder.com/react-crud-web-api/ ) / [ React Redux Client] ( https://www.bezkoder.com/react-redux-crud-example/ )
27
+
28
+ ## Demo Video
29
+ This is our Node.js PostgreSQL CRUD example using Express & Sequelize application demo, test Rest Apis with Postman.
30
+
31
+ [ ![ Node.js PostgreSQL CRUD example Github] ( http://img.youtube.com/vi/x1pZHN_sjGk/0.jpg )] ( http://www.youtube.com/watch?v=x1pZHN_sjGk " Node.js PostgreSQL CRUD example Github ")
32
+
33
+ ### Test the APIs
34
+ Run our Node.js application with command: ` node server.js ` .
35
+
36
+ Using Postman, we're gonna test all the Apis above.
37
+
38
+ - Create a new Tutorial using ` POST /tutorials ` Api
39
+
40
+ ![ node-js-postgresql-crud-example-create] ( https://dev-to-uploads.s3.amazonaws.com/i/hqvz8ra9p21z927iwzph.png )
41
+
42
+ After creating some new Tutorials, you can check PostgreSQL table:
43
+ ``` testdb=# select * from tutorials;
44
+ id | title | description | published | createdAt | updatedAt
45
+ ----+-------------+-------------------+-----------+----------------------------+----------------------------
46
+ 1 | Node Tut #1 | Tut#1 Description | f | 2020-01-29 10:42:57.121+07 | 2020-01-29 10:42:57.121+07
47
+ 2 | Node Tut #2 | Tut#2 Description | f | 2020-01-29 10:43:05.131+07 | 2020-01-29 10:43:05.131+07
48
+ 3 | Node Tut #3 | Tut#3 Description | f | 2020-01-29 10:43:48.028+07 | 2020-01-29 10:43:48.028+07
49
+ 4 | Js Tut #4 | Tut#4 Desc | f | 2020-01-29 10:45:40.016+07 | 2020-01-29 10:45:40.016+07
50
+ 5 | Js Tut #5 | Tut#5 Desc | f | 2020-01-29 10:45:44.289+07 | 2020-01-29 10:45:44.289+07
51
+ ```
52
+
53
+ - Retrieve all Tutorials using ` GET /tutorials ` Api
54
+
55
+ ![ node-js-postgresql-crud-example-retrieve-all] ( https://dev-to-uploads.s3.amazonaws.com/i/m9razjm1njgww58er3as.png )
56
+
57
+ - Retrieve a single Tutorial by id using ` GET /tutorials/:id ` Api
58
+
59
+ ![ node-js-postgresql-crud-example-retrieve-one] ( https://dev-to-uploads.s3.amazonaws.com/i/0kuojvc596i5u423od2b.png )
60
+
61
+ - Update a Tutorial using ` PUT /tutorials/:id ` Api
62
+
63
+ ![ node-js-postgresql-crud-example-update] ( https://dev-to-uploads.s3.amazonaws.com/i/3buqfz0by0lu2z4kf3uq.png )
64
+
65
+ Check ` tutorials ` table after some rows were updated:
66
+ ``` testdb=# select * from tutorials;
67
+ id | title | description | published | createdAt | updatedAt
68
+ ----+----------------+-------------------+-----------+----------------------------+----------------------------
69
+ 1 | Node Tut #1 | Tut#1 Description | f | 2020-01-29 10:42:57.121+07 | 2020-01-29 10:42:57.121+07
70
+ 3 | Node Tut #3 | Tut#3 Description | f | 2020-01-29 10:43:48.028+07 | 2020-01-29 10:43:48.028+07
71
+ 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
72
+ 4 | Js Tut #4 | Tut#4 Desc | t | 2020-01-29 10:45:40.016+07 | 2020-01-29 10:54:17.468+07
73
+ 5 | Js Tut #5 | Tut#5 Desc | t | 2020-01-29 10:45:44.289+07 | 2020-01-29 10:54:20.544+07
74
+ ```
75
+
76
+ - Find all Tutorials which title contains 'js': ` GET /tutorials?title=js `
77
+
78
+ ![ node-js-postgresql-crud-example-search] ( https://dev-to-uploads.s3.amazonaws.com/i/u2hbmz5r35o7uo09y3z5.png )
79
+
80
+ - Find all published Tutorials using ` GET /tutorials/published ` Api
81
+
82
+ ![ node-js-postgresql-crud-example-search-status] ( https://dev-to-uploads.s3.amazonaws.com/i/dbo753wfqibt0b93d82d.png )
83
+
84
+ - Delete a Tutorial using ` DELETE /tutorials/:id ` Api
85
+
86
+ ![ node-js-postgresql-crud-example-delete-one] ( https://dev-to-uploads.s3.amazonaws.com/i/pyos3wq4tchb8ixuyj1c.png )
87
+
88
+ Tutorial with id=4 was removed from ` tutorials ` table:
89
+ ``` testdb=# select * from tutorials;
90
+ id | title | description | published | createdAt | updatedAt
91
+ ----+----------------+-------------------+-----------+----------------------------+----------------------------
92
+ 1 | Node Tut #1 | Tut#1 Description | f | 2020-01-29 10:42:57.121+07 | 2020-01-29 10:42:57.121+07
93
+ 3 | Node Tut #3 | Tut#3 Description | f | 2020-01-29 10:43:48.028+07 | 2020-01-29 10:43:48.028+07
94
+ 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
95
+ 5 | Js Tut #5 | Tut#5 Desc | t | 2020-01-29 10:45:44.289+07 | 2020-01-29 10:54:20.544+07
96
+ ```
97
+
98
+ - Delete all Tutorials using ` DELETE /tutorials ` Api
99
+
100
+ ![ node-js-postgresql-crud-example-delete-all] ( https://dev-to-uploads.s3.amazonaws.com/i/ga42747jorssl20ywyug.png )
101
+
102
+ Now there are no rows in ` tutorials ` table:
103
+ ``` testdb=# select * from tutorials;
104
+ id | title | description | published | createdAt | updatedAt
105
+ ----+-------+-------------+-----------+-----------+-----------
106
+ ```
107
+
6
108
More Practice:
7
109
> [ Node.js Express Pagination with PostgreSQL example] ( https://bezkoder.com/node-js-pagination-postgresql/ )
8
110
@@ -19,17 +121,25 @@ Associations:
19
121
> [ Sequelize Associations: Many-to-Many Relationship example] ( https://bezkoder.com/sequelize-associate-many-to-many/ )
20
122
21
123
Fullstack:
22
- > [ Vue + Node.js + Express + PostgreSQL example] ( https://bezkoder.com/vue-node-express-postgresql/ )
124
+ > [ Vue + Node.js + Express + PostgreSQL example] ( https://www.bezkoder.com/vue-node-express-postgresql/ )
125
+
126
+ > [ React + Node.js + Express + PostgreSQL example] ( https://www.bezkoder.com/react-node-express-postgresql/ )
127
+
128
+ > [ Angular 8 + Node.js + Express + PostgreSQL example] ( https://www.bezkoder.com/angular-node-express-postgresql/ )
129
+
130
+ > [ Angular 10 + Node.js + Express + PostgreSQL example] ( https://www.bezkoder.com/angular-10-node-express-postgresql/ )
131
+
132
+ > [ Angular 11 + Node.js + Express + PostgreSQL example] ( https://www.bezkoder.com/angular-11-node-js-express-postgresql/ )
23
133
24
- > [ React + Node.js + Express + PostgreSQL example] ( https://bezkoder.com/react- node-express-postgresql/ )
134
+ > [ Angular 12 + Node.js + Express + PostgreSQL example] ( https://www. bezkoder.com/angular-12- node-js -express-postgresql/ )
25
135
26
- > [ Angular 8 + Node.js + Express + PostgreSQL example] ( https://bezkoder.com/angular-node-express-postgresql/ )
136
+ > [ Angular 13 + Node.js + Express + PostgreSQL example] ( https://www. bezkoder.com/angular-13- node-js -express-postgresql/ )
27
137
28
- > [ Angular 10 + Node.js + Express + PostgreSQL example] ( https://bezkoder.com/angular-10 -node-express-postgresql/ )
138
+ > [ Angular 14 + Node.js + Express + PostgreSQL example] ( https://www. bezkoder.com/angular-14 -node-js -express-postgresql/ )
29
139
30
- > [ Angular 11 + Node.js + Express + PostgreSQL example] ( https://bezkoder.com/angular-11 -node-js-express-postgresql/ )
140
+ > [ Angular 15 + Node.js + Express + PostgreSQL example] ( https://www. bezkoder.com/angular-15 -node-js-express-postgresql/ )
31
141
32
- > [ Angular 12 + Node.js + Express + PostgreSQL example] ( https://bezkoder.com/angular-12 -node-js-express-postgresql/ )
142
+ > [ Angular 16 + Node.js + Express + PostgreSQL example] ( https://www. bezkoder.com/angular-16 -node-js-express-postgresql/ )
33
143
34
144
Integration (run back-end & front-end on same server/port)
35
145
> [ Integrate React with Node.js Restful Services] ( https://bezkoder.com/integrate-react-express-same-server-port/ )
0 commit comments