Before starting, here are the prerequisites and requirements for us to be able to deploy the application:
Node.js
is an open source, cross-platform runtime environment for developing network and server-side applications. Everyone should have a basic knowledge of nodejs .
ExpressJS
is one of the most popular framework
for node.js
It is built on top of the node.js http module and adds support for routing, middleware, viewing system, etc.It is very simple and minimal, unlike other frameworks.
MySQL
is an open source relational database management system. Its name is a combination of “My”, the name of the daughter of co-founder Michael Widenius and “SQL”, short for Structured Query Language
.
EcmaScript
(ES) is a standardized scripting language for JavaScript (JS)
. The current ES
version supported in modern browsers is ES5
. However, ES6
solves many of the core language’s limitations, making it easier for developers to code.
Postman
is an API
development tool (application programming interface) that helps to build, test and modify API
, it is capable of making different types of HTTP
requests ( GET
, POST
, PUT
, etc.) .
IDE
(Integrated Development Environment) is a software application that provides comprehensive facilities for computer programmers to develop software. An IDE
typically includes at least one source code editor, build automation tools, and a debugger. In my case I prefer to use visual studio code.
1. Create project
Create a project
with the command below:
1 2 3 4 5 | <span class="token comment">// Create directory</span> mkdir NodeMysqlCrudApp <span class="token comment">// then Navigate to NodeMysqlCrudApp</span> cd NodeMysqlCrudApp |
2. Project initialization and configuration
To initialize the project we type the command: npm init
, if we want to avoid some questions then we type the command: npm init -y
. The result is the package.json
file below:
3. Install express and other dependencies
Expressjs
is a framework
built on top of Nodejs
.
1 2 3 | <span class="token comment">// Lệnh cài đặt</span> npm install express <span class="token operator">--</span> save |
Body Parser
returns a function
that acts as a middleware
. The function listens on req.on ('data')
and builds r eq.body
from the chunks of data it receives.
1 2 | npm install body <span class="token operator">-</span> parser <span class="token operator">--</span> save |
MySQL
is an open source database used to interact with databases and manipulate records.
1 2 | npm install mysql <span class="token operator">--</span> save |
Nodemon
is a tool that helps develop node.js
based applications by automatically restarting the application when file changes in the directory are detected.
1 2 3 | <span class="token comment">// --save-dev: package will appear in your devDependencies</span> npm install <span class="token operator">--</span> save <span class="token operator">-</span> dev nodemon |
Now check the package.json
file again:
4. Initialize and start the server
Create a server.js
file in the project root directory and add a few lines of code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | <span class="token keyword">const</span> express <span class="token operator">=</span> <span class="token function">require</span> <span class="token punctuation">(</span> <span class="token string">'express'</span> <span class="token punctuation">)</span> <span class="token punctuation">;</span> <span class="token keyword">const</span> bodyParser <span class="token operator">=</span> <span class="token function">require</span> <span class="token punctuation">(</span> <span class="token string">'body-parser'</span> <span class="token punctuation">)</span> <span class="token punctuation">;</span> <span class="token comment">// create express app</span> <span class="token keyword">const</span> app <span class="token operator">=</span> <span class="token function">express</span> <span class="token punctuation">(</span> <span class="token punctuation">)</span> <span class="token punctuation">;</span> <span class="token comment">// Setup server port</span> <span class="token keyword">const</span> port <span class="token operator">=</span> process <span class="token punctuation">.</span> env <span class="token punctuation">.</span> <span class="token constant">PORT</span> <span class="token operator">||</span> <span class="token number">5000</span> <span class="token punctuation">;</span> <span class="token comment">// parse requests of content-type - application/x-www-form-urlencoded</span> app <span class="token punctuation">.</span> <span class="token function">use</span> <span class="token punctuation">(</span> bodyParser <span class="token punctuation">.</span> <span class="token function">urlencoded</span> <span class="token punctuation">(</span> <span class="token punctuation">{</span> extended <span class="token operator">:</span> <span class="token boolean">true</span> <span class="token punctuation">}</span> <span class="token punctuation">)</span> <span class="token punctuation">)</span> <span class="token comment">// parse requests of content-type - application/json</span> app <span class="token punctuation">.</span> <span class="token function">use</span> <span class="token punctuation">(</span> bodyParser <span class="token punctuation">.</span> <span class="token function">json</span> <span class="token punctuation">(</span> <span class="token punctuation">)</span> <span class="token punctuation">)</span> <span class="token comment">// define a root route</span> app <span class="token punctuation">.</span> <span class="token function">get</span> <span class="token punctuation">(</span> <span class="token string">'/'</span> <span class="token punctuation">,</span> <span class="token punctuation">(</span> <span class="token parameter">req <span class="token punctuation">,</span> res</span> <span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span> res <span class="token punctuation">.</span> <span class="token function">send</span> <span class="token punctuation">(</span> <span class="token string">"Welcome to my web server"</span> <span class="token punctuation">)</span> <span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token punctuation">)</span> <span class="token punctuation">;</span> <span class="token comment">// listen for requests</span> app <span class="token punctuation">.</span> <span class="token function">listen</span> <span class="token punctuation">(</span> port <span class="token punctuation">,</span> <span class="token punctuation">(</span> <span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span> console <span class="token punctuation">.</span> <span class="token function">log</span> <span class="token punctuation">(</span> <span class="token template-string"><span class="token template-punctuation string">`</span> <span class="token string">Server is listening on port </span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span> port <span class="token interpolation-punctuation punctuation">}</span></span> <span class="token template-punctuation string">`</span></span> <span class="token punctuation">)</span> <span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token punctuation">)</span> <span class="token punctuation">;</span> |
Now let’s run web server
up and see:
1 2 | node server <span class="token punctuation">.</span> js <span class="token comment">// or node server</span> |
Open a browser and go to http: // localhost: 5000 . If the browser displays "Welcome to my web server"
, then the server
you created is up and running.
In the process steps, I installed nodemon
. If you want the server to automatically restart
when there is a change, we just need to add the following code to the package.json
file:
1 2 | <span class="token string">"start"</span> <span class="token operator">:</span> <span class="token string">"nodemon server"</span> |
Now we will run the server with the command: npm start
5. Create database
Everyone download MySQL and create their own database. Here I will copy the script I created for everyone to refer.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <span class="token constant">CREATE</span> <span class="token constant">DATABASE</span> node_mysql_crud_db <span class="token punctuation">;</span> <span class="token constant">CREATE</span> <span class="token constant">TABLE</span> <span class="token constant">IF</span> <span class="token constant">NOT</span> <span class="token constant">EXISTS</span> <span class="token template-string"><span class="token template-punctuation string">`</span> <span class="token string">employees</span> <span class="token template-punctuation string">`</span></span> <span class="token punctuation">(</span> <span class="token template-string"><span class="token template-punctuation string">`</span> <span class="token string">id</span> <span class="token template-punctuation string">`</span></span> <span class="token constant">BIGINT</span> <span class="token constant">UNSIGNED</span> <span class="token constant">AUTO_INCREMENT</span> <span class="token punctuation">,</span> <span class="token template-string"><span class="token template-punctuation string">`</span> <span class="token string">first_name</span> <span class="token template-punctuation string">`</span></span> <span class="token constant">VARCHAR</span> <span class="token punctuation">(</span> <span class="token number">255</span> <span class="token punctuation">)</span> <span class="token constant">NOT</span> <span class="token constant">NULL</span> <span class="token punctuation">,</span> <span class="token template-string"><span class="token template-punctuation string">`</span> <span class="token string">last_name</span> <span class="token template-punctuation string">`</span></span> <span class="token constant">VARCHAR</span> <span class="token punctuation">(</span> <span class="token number">255</span> <span class="token punctuation">)</span> <span class="token constant">NOT</span> <span class="token constant">NULL</span> <span class="token punctuation">,</span> <span class="token template-string"><span class="token template-punctuation string">`</span> <span class="token string">email</span> <span class="token template-punctuation string">`</span></span> <span class="token constant">VARCHAR</span> <span class="token punctuation">(</span> <span class="token number">255</span> <span class="token punctuation">)</span> <span class="token constant">NOT</span> <span class="token constant">NULL</span> <span class="token punctuation">,</span> <span class="token template-string"><span class="token template-punctuation string">`</span> <span class="token string">phone</span> <span class="token template-punctuation string">`</span></span> <span class="token constant">VARCHAR</span> <span class="token punctuation">(</span> <span class="token number">50</span> <span class="token punctuation">)</span> <span class="token constant">NOT</span> <span class="token constant">NULL</span> <span class="token punctuation">,</span> <span class="token template-string"><span class="token template-punctuation string">`</span> <span class="token string">organization</span> <span class="token template-punctuation string">`</span></span> <span class="token constant">VARCHAR</span> <span class="token punctuation">(</span> <span class="token number">255</span> <span class="token punctuation">)</span> <span class="token constant">NOT</span> <span class="token constant">NULL</span> <span class="token punctuation">,</span> <span class="token template-string"><span class="token template-punctuation string">`</span> <span class="token string">designation</span> <span class="token template-punctuation string">`</span></span> <span class="token constant">VARCHAR</span> <span class="token punctuation">(</span> <span class="token number">100</span> <span class="token punctuation">)</span> <span class="token constant">NOT</span> <span class="token constant">NULL</span> <span class="token punctuation">,</span> <span class="token template-string"><span class="token template-punctuation string">`</span> <span class="token string">status</span> <span class="token template-punctuation string">`</span></span> <span class="token constant">TINYINT</span> <span class="token constant">UNSIGNED</span> <span class="token constant">DEFAULT</span> <span class="token number">0</span> <span class="token punctuation">,</span> <span class="token template-string"><span class="token template-punctuation string">`</span> <span class="token string">is_deleted</span> <span class="token template-punctuation string">`</span></span> <span class="token constant">TINYINT</span> <span class="token constant">UNSIGNED</span> <span class="token constant">DEFAULT</span> <span class="token number">0</span> <span class="token punctuation">,</span> <span class="token template-string"><span class="token template-punctuation string">`</span> <span class="token string">created_at</span> <span class="token template-punctuation string">`</span></span> <span class="token constant">DATETIME</span> <span class="token constant">NOT</span> <span class="token constant">NULL</span> <span class="token punctuation">,</span> <span class="token template-string"><span class="token template-punctuation string">`</span> <span class="token string">updated_at</span> <span class="token template-punctuation string">`</span></span> <span class="token constant">DATETIME</span> <span class="token constant">DEFAULT</span> <span class="token constant">CURRENT_TIMESTAMP</span> <span class="token constant">ON</span> <span class="token constant">UPDATE</span> <span class="token constant">CURRENT_TIMESTAMP</span> <span class="token punctuation">,</span> <span class="token constant">PRIMARY</span> <span class="token constant">KEY</span> <span class="token punctuation">(</span> <span class="token template-string"><span class="token template-punctuation string">`</span> <span class="token string">id</span> <span class="token template-punctuation string">`</span></span> <span class="token punctuation">)</span> <span class="token punctuation">)</span> <span class="token constant">ENGINE</span> <span class="token operator">=</span> InnoDB <span class="token punctuation">;</span> <span class="token constant">INSERT</span> <span class="token constant">INTO</span> <span class="token template-string"><span class="token template-punctuation string">`</span> <span class="token string">node_mysql_crud_db</span> <span class="token template-punctuation string">`</span></span> <span class="token punctuation">.</span> <span class="token template-string"><span class="token template-punctuation string">`</span> <span class="token string">employees</span> <span class="token template-punctuation string">`</span></span> <span class="token punctuation">(</span> <span class="token template-string"><span class="token template-punctuation string">`</span> <span class="token string">first_name</span> <span class="token template-punctuation string">`</span></span> <span class="token punctuation">,</span> <span class="token template-string"><span class="token template-punctuation string">`</span> <span class="token string">last_name</span> <span class="token template-punctuation string">`</span></span> <span class="token punctuation">,</span> <span class="token template-string"><span class="token template-punctuation string">`</span> <span class="token string">email</span> <span class="token template-punctuation string">`</span></span> <span class="token punctuation">,</span> <span class="token template-string"><span class="token template-punctuation string">`</span> <span class="token string">phone</span> <span class="token template-punctuation string">`</span></span> <span class="token punctuation">,</span> <span class="token template-string"><span class="token template-punctuation string">`</span> <span class="token string">organization</span> <span class="token template-punctuation string">`</span></span> <span class="token punctuation">,</span> <span class="token template-string"><span class="token template-punctuation string">`</span> <span class="token string">designation</span> <span class="token template-punctuation string">`</span></span> <span class="token punctuation">,</span> <span class="token template-string"><span class="token template-punctuation string">`</span> <span class="token string">salary</span> <span class="token template-punctuation string">`</span></span> <span class="token punctuation">,</span> <span class="token template-string"><span class="token template-punctuation string">`</span> <span class="token string">status</span> <span class="token template-punctuation string">`</span></span> <span class="token punctuation">,</span> <span class="token template-string"><span class="token template-punctuation string">`</span> <span class="token string">is_deleted</span> <span class="token template-punctuation string">`</span></span> <span class="token punctuation">,</span> <span class="token template-string"><span class="token template-punctuation string">`</span> <span class="token string">created_at</span> <span class="token template-punctuation string">`</span></span> <span class="token punctuation">)</span> <span class="token constant">VALUES</span> <span class="token punctuation">(</span> <span class="token string">'John'</span> <span class="token punctuation">,</span> <span class="token string">'Doe'</span> <span class="token punctuation">,</span> <span class="token string">' <a class="__cf_email__" href="/cdn-cgi/l/email-protection">[email protected]</a> '</span> <span class="token punctuation">,</span> <span class="token string">'1234567890'</span> <span class="token punctuation">,</span> <span class="token string">'BR Softech Pvt Ltd'</span> <span class="token punctuation">,</span> <span class="token string">'Full Stack Developer'</span> <span class="token punctuation">,</span> <span class="token string">'1'</span> <span class="token punctuation">,</span> <span class="token string">'0'</span> <span class="token punctuation">,</span> <span class="token string">'2019-11-19 03:30:30'</span> <span class="token punctuation">)</span> <span class="token punctuation">;</span> |
6. Database connection
To make a connection to the database in the project, create a configuration directory at the root directory and create the db.config.js
file inside the config directory.
1 2 3 4 | mkdir config <span class="token comment">// create folder config</span> cd config touch db <span class="token punctuation">.</span> config <span class="token punctuation">.</span> js <span class="token comment">// create file db.config.js</span> |
Next, add the code below to create mysql connection:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <span class="token string">'use strict'</span> <span class="token punctuation">;</span> <span class="token keyword">const</span> mysql <span class="token operator">=</span> <span class="token function">require</span> <span class="token punctuation">(</span> <span class="token string">'mysql'</span> <span class="token punctuation">)</span> <span class="token punctuation">;</span> <span class="token comment">//local mysql db connection</span> <span class="token keyword">const</span> dbConn <span class="token operator">=</span> mysql <span class="token punctuation">.</span> <span class="token function">createConnection</span> <span class="token punctuation">(</span> <span class="token punctuation">{</span> host <span class="token operator">:</span> <span class="token string">'localhost'</span> <span class="token punctuation">,</span> user <span class="token operator">:</span> <span class="token string">'root'</span> <span class="token punctuation">,</span> password <span class="token operator">:</span> <span class="token string">' <a class="__cf_email__" href="/cdn-cgi/l/email-protection">[email protected]</a> '</span> <span class="token punctuation">,</span> database <span class="token operator">:</span> <span class="token string">'node_mysql_crud_db'</span> <span class="token punctuation">}</span> <span class="token punctuation">)</span> <span class="token punctuation">;</span> dbConn <span class="token punctuation">.</span> <span class="token function">connect</span> <span class="token punctuation">(</span> <span class="token keyword">function</span> <span class="token punctuation">(</span> <span class="token parameter">err</span> <span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token keyword">if</span> <span class="token punctuation">(</span> err <span class="token punctuation">)</span> <span class="token keyword">throw</span> err <span class="token punctuation">;</span> console <span class="token punctuation">.</span> <span class="token function">log</span> <span class="token punctuation">(</span> <span class="token string">"Database Connected!"</span> <span class="token punctuation">)</span> <span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token punctuation">)</span> <span class="token punctuation">;</span> module <span class="token punctuation">.</span> exports <span class="token operator">=</span> dbConn <span class="token punctuation">;</span> |
If after the connection displays as below, everyone has successfully connected to their database.
7. Project Directory Structure
Let’s take a look at the project directory structure:
Below I will demo writing an api taking all employees according to the MVC model, everyone will see it:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | <span class="token comment">// employee.model.js</span> <span class="token string">'use strict'</span> <span class="token punctuation">;</span> <span class="token keyword">var</span> dbConn <span class="token operator">=</span> <span class="token function">require</span> <span class="token punctuation">(</span> <span class="token string">'./../../config/db.config'</span> <span class="token punctuation">)</span> <span class="token punctuation">;</span> <span class="token comment">//Employee object create</span> <span class="token keyword">var</span> <span class="token function-variable function">Employee</span> <span class="token operator">=</span> <span class="token keyword">function</span> <span class="token punctuation">(</span> <span class="token parameter">employee</span> <span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token keyword">this</span> <span class="token punctuation">.</span> first_name <span class="token operator">=</span> employee <span class="token punctuation">.</span> first_name <span class="token punctuation">;</span> <span class="token keyword">this</span> <span class="token punctuation">.</span> last_name <span class="token operator">=</span> employee <span class="token punctuation">.</span> last_name <span class="token punctuation">;</span> <span class="token keyword">this</span> <span class="token punctuation">.</span> email <span class="token operator">=</span> employee <span class="token punctuation">.</span> email <span class="token punctuation">;</span> <span class="token keyword">this</span> <span class="token punctuation">.</span> phone <span class="token operator">=</span> employee <span class="token punctuation">.</span> phone <span class="token punctuation">;</span> <span class="token keyword">this</span> <span class="token punctuation">.</span> organization <span class="token operator">=</span> employee <span class="token punctuation">.</span> organization <span class="token punctuation">;</span> <span class="token keyword">this</span> <span class="token punctuation">.</span> designation <span class="token operator">=</span> employee <span class="token punctuation">.</span> designation <span class="token punctuation">;</span> <span class="token keyword">this</span> <span class="token punctuation">.</span> salary <span class="token operator">=</span> employee <span class="token punctuation">.</span> salary <span class="token punctuation">;</span> <span class="token keyword">this</span> <span class="token punctuation">.</span> status <span class="token operator">=</span> employee <span class="token punctuation">.</span> status <span class="token operator">?</span> employee <span class="token punctuation">.</span> status <span class="token operator">:</span> <span class="token number">1</span> <span class="token punctuation">;</span> <span class="token keyword">this</span> <span class="token punctuation">.</span> created_at <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Date</span> <span class="token punctuation">(</span> <span class="token punctuation">)</span> <span class="token punctuation">;</span> <span class="token keyword">this</span> <span class="token punctuation">.</span> updated_at <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Date</span> <span class="token punctuation">(</span> <span class="token punctuation">)</span> <span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token punctuation">;</span> Employee <span class="token punctuation">.</span> <span class="token function-variable function">getAll</span> <span class="token operator">=</span> <span class="token keyword">function</span> <span class="token punctuation">(</span> <span class="token parameter">result</span> <span class="token punctuation">)</span> <span class="token punctuation">{</span> dbConn <span class="token punctuation">.</span> <span class="token function">query</span> <span class="token punctuation">(</span> <span class="token string">"Select * from employees"</span> <span class="token punctuation">,</span> <span class="token keyword">function</span> <span class="token punctuation">(</span> <span class="token parameter">err <span class="token punctuation">,</span> res</span> <span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token keyword">if</span> <span class="token punctuation">(</span> err <span class="token punctuation">)</span> <span class="token punctuation">{</span> console <span class="token punctuation">.</span> <span class="token function">log</span> <span class="token punctuation">(</span> <span class="token string">"error: "</span> <span class="token punctuation">,</span> err <span class="token punctuation">)</span> <span class="token punctuation">;</span> <span class="token function">result</span> <span class="token punctuation">(</span> <span class="token keyword">null</span> <span class="token punctuation">,</span> err <span class="token punctuation">)</span> <span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token keyword">else</span> <span class="token punctuation">{</span> console <span class="token punctuation">.</span> <span class="token function">log</span> <span class="token punctuation">(</span> <span class="token string">'employees : '</span> <span class="token punctuation">,</span> res <span class="token punctuation">)</span> <span class="token punctuation">;</span> <span class="token function">result</span> <span class="token punctuation">(</span> <span class="token keyword">null</span> <span class="token punctuation">,</span> res <span class="token punctuation">)</span> <span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span> <span class="token punctuation">)</span> <span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token punctuation">;</span> module <span class="token punctuation">.</span> exports <span class="token operator">=</span> Employee <span class="token punctuation">;</span> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <span class="token comment">// employee.controller.js </span> <span class="token string">'use strict'</span> <span class="token punctuation">;</span> <span class="token keyword">const</span> Employee <span class="token operator">=</span> <span class="token function">require</span> <span class="token punctuation">(</span> <span class="token string">'../models/employee.model'</span> <span class="token punctuation">)</span> <span class="token punctuation">;</span> exports <span class="token punctuation">.</span> <span class="token function-variable function">getAll</span> <span class="token operator">=</span> <span class="token keyword">function</span> <span class="token punctuation">(</span> <span class="token parameter">req <span class="token punctuation">,</span> res</span> <span class="token punctuation">)</span> <span class="token punctuation">{</span> Employee <span class="token punctuation">.</span> <span class="token function">getAll</span> <span class="token punctuation">(</span> <span class="token keyword">function</span> <span class="token punctuation">(</span> <span class="token parameter">err <span class="token punctuation">,</span> employee</span> <span class="token punctuation">)</span> <span class="token punctuation">{</span> console <span class="token punctuation">.</span> <span class="token function">log</span> <span class="token punctuation">(</span> <span class="token string">'controller'</span> <span class="token punctuation">)</span> <span class="token keyword">if</span> <span class="token punctuation">(</span> err <span class="token punctuation">)</span> res <span class="token punctuation">.</span> <span class="token function">send</span> <span class="token punctuation">(</span> err <span class="token punctuation">)</span> <span class="token punctuation">;</span> console <span class="token punctuation">.</span> <span class="token function">log</span> <span class="token punctuation">(</span> <span class="token string">'res'</span> <span class="token punctuation">,</span> employee <span class="token punctuation">)</span> <span class="token punctuation">;</span> res <span class="token punctuation">.</span> <span class="token function">send</span> <span class="token punctuation">(</span> employee <span class="token punctuation">)</span> <span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token punctuation">)</span> <span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token punctuation">;</span> |
1 2 3 4 5 6 7 8 9 10 11 12 | <span class="token comment">// employee.routes.js</span> <span class="token keyword">const</span> express <span class="token operator">=</span> <span class="token function">require</span> <span class="token punctuation">(</span> <span class="token string">'express'</span> <span class="token punctuation">)</span> <span class="token keyword">const</span> router <span class="token operator">=</span> express <span class="token punctuation">.</span> <span class="token function">Router</span> <span class="token punctuation">(</span> <span class="token punctuation">)</span> <span class="token keyword">const</span> employeeController <span class="token operator">=</span> <span class="token function">require</span> <span class="token punctuation">(</span> <span class="token string">'../controllers/employee.controller'</span> <span class="token punctuation">)</span> <span class="token punctuation">;</span> <span class="token comment">// Get all employees</span> router <span class="token punctuation">.</span> <span class="token function">get</span> <span class="token punctuation">(</span> <span class="token string">'/'</span> <span class="token punctuation">,</span> employeeController <span class="token punctuation">.</span> getAll <span class="token punctuation">)</span> <span class="token punctuation">;</span> module <span class="token punctuation">.</span> exports <span class="token operator">=</span> router |
Finally, we update code file server.js
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | <span class="token keyword">const</span> express <span class="token operator">=</span> <span class="token function">require</span> <span class="token punctuation">(</span> <span class="token string">'express'</span> <span class="token punctuation">)</span> <span class="token punctuation">;</span> <span class="token keyword">const</span> bodyParser <span class="token operator">=</span> <span class="token function">require</span> <span class="token punctuation">(</span> <span class="token string">'body-parser'</span> <span class="token punctuation">)</span> <span class="token punctuation">;</span> <span class="token comment">// create express app</span> <span class="token keyword">const</span> app <span class="token operator">=</span> <span class="token function">express</span> <span class="token punctuation">(</span> <span class="token punctuation">)</span> <span class="token punctuation">;</span> <span class="token comment">// Setup server port</span> <span class="token keyword">const</span> port <span class="token operator">=</span> process <span class="token punctuation">.</span> env <span class="token punctuation">.</span> <span class="token constant">PORT</span> <span class="token operator">||</span> <span class="token number">5000</span> <span class="token punctuation">;</span> <span class="token comment">// parse requests of content-type - application/x-www-form-urlencoded</span> app <span class="token punctuation">.</span> <span class="token function">use</span> <span class="token punctuation">(</span> bodyParser <span class="token punctuation">.</span> <span class="token function">urlencoded</span> <span class="token punctuation">(</span> <span class="token punctuation">{</span> extended <span class="token operator">:</span> <span class="token boolean">true</span> <span class="token punctuation">}</span> <span class="token punctuation">)</span> <span class="token punctuation">)</span> <span class="token comment">// parse requests of content-type - application/json</span> app <span class="token punctuation">.</span> <span class="token function">use</span> <span class="token punctuation">(</span> bodyParser <span class="token punctuation">.</span> <span class="token function">json</span> <span class="token punctuation">(</span> <span class="token punctuation">)</span> <span class="token punctuation">)</span> <span class="token comment">// define a root route</span> app <span class="token punctuation">.</span> <span class="token function">get</span> <span class="token punctuation">(</span> <span class="token string">'/'</span> <span class="token punctuation">,</span> <span class="token punctuation">(</span> <span class="token parameter">req <span class="token punctuation">,</span> res</span> <span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span> res <span class="token punctuation">.</span> <span class="token function">send</span> <span class="token punctuation">(</span> <span class="token string">"Welcome to my web server"</span> <span class="token punctuation">)</span> <span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token punctuation">)</span> <span class="token punctuation">;</span> <span class="token comment">// Require employee routes</span> <span class="token keyword">const</span> employeeRoutes <span class="token operator">=</span> <span class="token function">require</span> <span class="token punctuation">(</span> <span class="token string">'./src/routes/employee.routes'</span> <span class="token punctuation">)</span> <span class="token comment">// using as middleware</span> app <span class="token punctuation">.</span> <span class="token function">use</span> <span class="token punctuation">(</span> <span class="token string">'/api/v1/employees'</span> <span class="token punctuation">,</span> employeeRoutes <span class="token punctuation">)</span> <span class="token comment">// listen for requests</span> app <span class="token punctuation">.</span> <span class="token function">listen</span> <span class="token punctuation">(</span> port <span class="token punctuation">,</span> <span class="token punctuation">(</span> <span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span> console <span class="token punctuation">.</span> <span class="token function">log</span> <span class="token punctuation">(</span> <span class="token template-string"><span class="token template-punctuation string">`</span> <span class="token string">Server is listening on port </span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span> port <span class="token interpolation-punctuation punctuation">}</span></span> <span class="token template-punctuation string">`</span></span> <span class="token punctuation">)</span> <span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token punctuation">)</span> <span class="token punctuation">;</span> |
Okay, the results after I tested the postman
everyone.
Reference: https://medium.com/@rahulguptalive/create-crud-apis-in-nodejs-express-and-mysql-abda4dfc2d6
Thank you everyone for watching, see you in the next posts