In this tutorial, we will learn about performing CRUD (Create, Read, Update, Delete) operations in Node.js using the Express.js framework and a MySQL database.
Creating a New Project
First, create a new project by navigating to the desired location and creating a new folder. Let's call the folder `myproject`. Open the command prompt in the folder by typing `cmd` in the explorer URL and pressing enter.
Run the following command to initialize the project:
npm init -y
Next, install Express.js by running the following command:
npm install express
Also, install the body-parser and mysql packages:
npm install body-parser
npm install mysql
Setting up the Project in Visual Studio Code
Open the project in Visual Studio Code and create a new file called `index.js`. Inside the index.js file, require the Express.js, mysql, and body-parser packages:
const express = require('express');
const mysql = require('mysql');
const bodyparser = require('body-parser');
Create an Express.js app and configure the Express.js server:
var app = express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended:true}));
Creating a MySQL Database
Create a new database in MySQL by navigating to phpMyAdmin and creating a new database called `studentdb`. Open the studentdb database and create a new table by running the following SQL query:
CREATE TABLE IF NOT EXISTS `students` (
`id` bigint(20) `unsigned` NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`email` varchar(255) NOT NULL,
`phone` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
);
Connecting to the MySQL Database
Switch back to the project and add the MySQL connection to the index.js file:
var mysqlConnection = mysql.createConnection({
host:'localhost',
user:'root',
password:'',
database:'studentdb',
multipleStatements:true.
});
Use the connect() function to establish a connection to the database using the provided credentials:
mysqlConnection.connect((err)=> {
if(!err)
console.log('Connection Established Successfully');
else.
console.log('Connection Failed!'+ JSON.stringify(err,undefined,2));
});
app.listen(3000,()=>{
console.log(`Express is running on localhost:3000`);
});
Installing Nodemon
Install Nodemon by running the following command:
npm install nodemon
Running the Application
Run the index.js file by typing the following command:
nodemon index.js
You should see a message indicating that the connection was established successfully.
Performing CRUD Operations
Create Operation
Write the code to insert a record into the database:
app.post('/student',(req,res)=>{
mysqlConnection.query(`INSERT INTO students(name,email,phone) values(?,?,?)`,[req.body.name,req.body.email,req.body.phone],(err,response)=>{
if(!err)
{
res.send(`Record has been inserted successfully!`);
}
else{
throw err;
}
})
});
Run the application and send a POST request to the /student endpoint using Postman:
Select the POST method and set the URL to localhost:3000/student. Pass the name, email, and phone number in the request body and click send. You should see a response indicating that the record was created.
Read Operation
Write the code to fetch all records from the database:
app.get('/students',(req,res)=>{
mysqlConnection.query('SELECT * FROM students',(err,rows,fields)=>{
if(!err)
{
res.send(rows);
}
else
{
throw err;
}
});
});
Run the application and send a GET request to the /students endpoint using Postman:
Select the GET method and set the URL to localhost:3000/students. Click send and you should see a list of all students.
Get Specific Student
Create a route to get a specific student from the MySQL database:
app.get('/students/:id',(req,res)=>{
mysqlConnection.query('SELECT * FROM students WHERE id=?',[req.params.id],(err,row,fields)=>{
if(!err)
{
res.send(row);
}
else{
throw err;
}
});
});
Run the application and send a GET request to the /students/1 endpoint using Postman:
Select the GET method and set the URL to localhost:3000/students/1. Click send and you should see the student with ID 1.
Update Operation
Create a route to update a student:
app.put('/students/:id',(req,res)=>{
mysqlConnection.query('UPDATE students SET phone=? WHERE id=?',[req.body.phone,req.params.id],(err,rows,fields)=>{
if(!err)
{
res.send(`Record has been updated`);
}
else{
throw err;
}
})
});
Run the application and send a PUT request to the /students/1 endpoint using Postman:
Select the PUT method and set the URL to localhost:3000/students/1. Pass the updated data in the request body and click send. You should see a response indicating that the student was updated.
Delete Operation
Create a route to delete a student:
app.delete('/students/:id',(req,res)=>{
mysqlConnection.query('DELETE FROM students WHERE id=?',[req.params.id],(err,rows,fields)=>{
if(!err){
res.send('Record has been deleted successfully!');
}
else{
throw err;
}
});
});
Run the application and send a DELETE request to the /students/1 endpoint using Postman:
Select the DELETE method and set the URL to localhost:3000/students/1. Click send and you should see a response indicating that the student was deleted.
This concludes the tutorial on performing CRUD operations in Node.js using Express.js and a MySQL database.






