Node.js CRUD Application with Mongo DB Database

Introduction: In this tutorial, we'll walk through the process of building a CRUD (Create, Read, Update, Delete) application using Nod...

Node.js CRUD Application with Mongo DB Database

Introduction:


In this tutorial, we'll walk through the process of building a CRUD (Create, Read, Update, Delete) application using Node.js and MongoDB. CRUD applications are fundamental in web development as they facilitate the basic operations for managing data in a database. We'll leverage the power of Node.js for the backend logic and MongoDB as the database to store our data. By the end of this tutorial, you'll have a solid understanding of how to create a fully functional CRUD application.





Prerequisites:


Before we begin, make sure you have the following installed on your system:

  1. Node.js
  2. MongoDB

Step 1: Setting Up Your Project:


Start by creating a new directory for your project and navigate into it using your terminal or command prompt.

	
	mkdir node-crud-app
	cd node-crud-app
	

Initialize a new Node.js project using npm.

	
	npm init -y
	

Step 2: Installing Dependencies:


Next, we need to install the necessary dependencies for our project. We'll use Express.js as our web framework and Mongoose as the MongoDB ODM (Object Data Modeling) library.

	
	npm install express mongoose body-parser
	

Step 3: Setting Up MongoDB:



In this tutorial, we have use Cloud Mongo DB Database. So in below video tutorial, you can find step by step guide for how to create Mongo DB Schema or Database in the Cloud.

Step 4: Creating the Server:


Create a file named server.js in your project directory and set up a basic Express server.

server.js
	
	const express = require('express');
	const bodyParser = require('body-parser');
	const mongoose = require('mongoose');

	const app = express();
	const PORT = 3000;

	app.use(bodyParser.json());

	app.use(express.static(__dirname));
	

Step 5: Connecting to MongoDB:


Add the code to connect your Node.js application to MongoDB using Mongoose.

server.js
	
	const express = require('express');
	const bodyParser = require('body-parser');
	const mongoose = require('mongoose');

	const app = express();
	const PORT = 3000;

	app.use(bodyParser.json());

	app.use(express.static(__dirname));

	mongoose.connect('mongodb+srv://johnsmith174:xxxxx@cluster0.8dbkdwt.mongodb.net/?retryWrites=true&w=majority&appName=Cluster0');

	const connect = mongoose.connection;

	connect.on('error', console.error.bind(console, 'MongoDB connection error:'));

	connect.once('open', () => {
		console.log('Connected to MongoDB');
	});
	

Step 6: Creating Models:


Define a schema for your MongoDB documents and create models using Mongoose.

server.js
	
		const userSchema = new mongoose.Schema({
			name : String,
			email : String,
			age : Number
		});

		const User = mongoose.model('User', userSchema);
	

Step 7: Implementing CRUD Operations:


Now, let's implement the CRUD operations for our application - Create, Read, Update, and Delete.

Create Operation (POST):


The create operation involves adding new items to our database. We'll define a route to handle incoming POST requests to create new items.

So first we have to create one get route in server.js file for load HTML file in the browser.

server.js
	
		app.get('/', async (request, response) => {
			response.sendFile(__dirname + '/user.html');
		});
	

Next we have to create one user.html file and under this file, we have to create one button and when we have click on button then bootstrap modal must be pop up on web page and under modal we will make user form for insert data into MongoDB.

user.html
	
<!doctype html>
<html lang="en">
    <head>
        <!-- Required meta tags -->
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">

        <!-- Bootstrap CSS -->
        <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">

        <title>Build a CRUD App with Node.js and MongoDB</title>
    </head>
    <body>
        
        <div class="container">
            <h1 class="text-center mb-5 mt-5 text-danger"><b>Build a CRUD App with Node.js and MongoDB - Insert Data into MongoDB Database - 2</b></h1>
            <div class="card mb-5">
                <div class="card-header">
                    <div class="row">
                        <div class="col col-6">Sample Data</div>
                        <div class="col col-6">
                            <button type="button" class="btn btn-primary btn-sm float-end" onclick="makeModal('Add User', 'Add', 'insertData')">Add</button>
                        </div>
                    </div>
                </div>
                <div class="card-body">
                    <div class="table-responsive">
                        
                    </div>
                </div>
            </div>
        </div>
    </body>
</html>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM" crossorigin="anonymous"></script>
<div id="modalArea"></div>

<script>

var userModalElement;

function makeModal(title, button_value, callback)
{
    let html = `
    <div class="modal" tabindex="-1" id="userModal">
        <div class="modal-dialog">
            <div class="modal-content">
                <form id="userform">
                    <div class="modal-header">
                        <h5 class="modal-title">${title}</h5>
                        <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
                    </div>
                    <div class="modal-body">
                        <div class="mb-3">
                            <label>Name</label>
                            <input type="text" name="name" id="name" class="form-control" />
                        </div>
                        <div class="mb-3">
                            <label>Email</label>
                            <input type="email" name="email" id="email" class="form-control" />
                        </div>
                        <div class="mb-3">
                            <label>Age</label>
                            <input type="number" name="age" id="age" class="form-control" />
                        </div>
                    </div>
                    <div class="modal-footer">
                        <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
                        <button type="button" class="btn btn-primary" onclick="${callback}()">${button_value}</button>
                    </div>
                </form>
            </div>
        </div>
    </div>
    `;

    document.querySelector('#modalArea').innerHTML = html;

    userModalElement = new bootstrap.Modal(document.getElementById('userModal'));

    userModalElement.show();
}

function insertData()
{
    let formElement = document.getElementById('userform');
    const formData = new FormData(formElement);
    // Convert formData to JSON
    const jsonData = {};
    formData.forEach((value, key) => {
        jsonData[key] = value;
    });
    // Make a POST request using Fetch API
    fetch('/users', {
        method : 'POST',
        body : JSON.stringify(jsonData),
        headers : {
            'Content-Type': 'application/json'
        }
    })
    .then(response => {
        return response.json();
    })
    .then(data => {
        userModalElement.hide();
        getData();
    });
}

</script>


Next we have goes to server.js file and here we have to create one POST route for handle form data for insert data into MongoDB.

server.js
	
	app.post('/users', async (request, response) => {
		const user = new User({
			name : request.body.name,
			email : request.body.email,
			age : request.body.age
		});
		const newItem = await user.save();
		response.status(201).json({scuccess:true});
	});
	

Read Operation (GET):


So for read data operation, first we have goest to user.html file and here we have to create one HTML table and then after we have goes to JavaScript code part, and here we have to create one getData() function which will send fetch data request to node application route and display on web page, and call this function into insertData() function, so when new data has been inserted then it will display last inserted data on web also.

user.html
	
	<!doctype html>
	<html lang="en">
		<head>
			<!-- Required meta tags -->
			<meta charset="utf-8">
			<meta name="viewport" content="width=device-width, initial-scale=1">

			<!-- Bootstrap CSS -->
			<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">

			<title>Build a CRUD App with Node.js and MongoDB</title>
		</head>
		<body>
			
			<div class="container">
				<h1 class="text-center mb-5 mt-5 text-danger"><b>Build a CRUD App with Node.js and MongoDB - Insert Data into MongoDB Database - 2</b></h1>
				<div class="card mb-5">
					<div class="card-header">
						<div class="row">
							<div class="col col-6">Sample Data</div>
							<div class="col col-6">
								<button type="button" class="btn btn-primary btn-sm float-end" onclick="makeModal('Add User', 'Add', 'insertData')">Add</button>
							</div>
						</div>
					</div>
					<div class="card-body">
						<div class="table-responsive">
							<table class="table table-bordered table-striped">
								<thead>
									<tr>
										<th>Name</th>
										<th>Email</th>
										<th>Age</th>
										<th>Action</th>
									</tr>
								</thead>
								<tbody id="dataArea"></tbody>
							</table>
						</div>
					</div>
				</div>
			</div>
		</body>
	</html>
	<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM" crossorigin="anonymous"></script>
	<div id="modalArea"></div>

	<script>

	var userModalElement;

	function makeModal(title, button_value, callback)
	{
		let html = `
		<div class="modal" tabindex="-1" id="userModal">
			<div class="modal-dialog">
				<div class="modal-content">
					<form id="userform">
						<div class="modal-header">
							<h5 class="modal-title">${title}</h5>
							<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
						</div>
						<div class="modal-body">
							<div class="mb-3">
								<label>Name</label>
								<input type="text" name="name" id="name" class="form-control" />
							</div>
							<div class="mb-3">
								<label>Email</label>
								<input type="email" name="email" id="email" class="form-control" />
							</div>
							<div class="mb-3">
								<label>Age</label>
								<input type="number" name="age" id="age" class="form-control" />
							</div>
						</div>
						<div class="modal-footer">
							<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
							<button type="button" class="btn btn-primary" onclick="${callback}()">${button_value}</button>
						</div>
					</form>
				</div>
			</div>
		</div>
		`;

		document.querySelector('#modalArea').innerHTML = html;

		userModalElement = new bootstrap.Modal(document.getElementById('userModal'));

		userModalElement.show();
	}

	function insertData()
	{
		let formElement = document.getElementById('userform');
		const formData = new FormData(formElement);
		// Convert formData to JSON
		const jsonData = {};
		formData.forEach((value, key) => {
			jsonData[key] = value;
		});
		// Make a POST request using Fetch API
		fetch('/users', {
			method : 'POST',
			body : JSON.stringify(jsonData),
			headers : {
				'Content-Type': 'application/json'
			}
		})
		.then(response => {
			return response.json();
		})
		.then(data => {
			userModalElement.hide();
			getData();
		});
	}

	getData();

	function getData(){
		fetch('/users')
		.then(response => {
			return response.json();
		})
		.then(data => {
			let html = '';
			if(data.length > 0){
				data.map((row) => {
					html += `
					<tr>
						<td>${row.name}</td>
						<td>${row.email}</td>
						<td>${row.age}</td>
						<td></td>
					</tr>
					`;
				});
			} else {
				html = '<tr><td colspan="4" class="text-center">No Data Found</td></tr>';
			}
			document.getElementById('dataArea').innerHTML = html;
		});
	}

	</script>
	

Next The read operation involves fetching existing items from the database. We'll define a route to handle incoming GET requests to retrieve items in server.js file.

server.js
	
		app.get('/users', async (request, response) => {
			const users = await User.find();
			response.status(200).json(users);
		});
	

Update Operation (PUT/PATCH):


For Update MongoDB data, first we have goes to user.html file and under this file, we have to create edit button in each of data, which will send get request for fetch single user data from MongoDB data and then after we have to create one editData() function which will be called when we have submit form data. So it will send PUT request to node crud application.

user.html
	
	<!doctype html>
	<html lang="en">
		<head>
			<!-- Required meta tags -->
			<meta charset="utf-8">
			<meta name="viewport" content="width=device-width, initial-scale=1">

			<!-- Bootstrap CSS -->
			<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">

			<title>Build a CRUD App with Node.js and MongoDB</title>
		</head>
		<body>
			
			<div class="container">
				<h1 class="text-center mb-5 mt-5 text-danger"><b>Build a CRUD App with Node.js and MongoDB - Delete Data from MongoDB Database - 5</b></h1>
				<div class="card mb-5">
					<div class="card-header">
						<div class="row">
							<div class="col col-6">Sample Data</div>
							<div class="col col-6">
								<button type="button" class="btn btn-primary btn-sm float-end" onclick="makeModal('Add User', 'Add', 'insertData')">Add</button>
							</div>
						</div>
					</div>
					<div class="card-body">
						<div class="table-responsive">
							<table class="table table-bordered table-striped">
								<thead>
									<tr>
										<th>Name</th>
										<th>Email</th>
										<th>Age</th>
										<th>Action</th>
									</tr>
								</thead>
								<tbody id="dataArea"></tbody>
							</table>
						</div>
					</div>
				</div>
			</div>
		</body>
	</html>
	<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM" crossorigin="anonymous"></script>
	<div id="modalArea"></div>

	<script>

	var userModalElement;

	function makeModal(title, button_value, callback)
	{
		let html = `
		<div class="modal" tabindex="-1" id="userModal">
			<div class="modal-dialog">
				<div class="modal-content">
					<form id="userform">
						<div class="modal-header">
							<h5 class="modal-title">${title}</h5>
							<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
						</div>
						<div class="modal-body">
							<div class="mb-3">
								<label>Name</label>
								<input type="text" name="name" id="name" class="form-control" />
							</div>
							<div class="mb-3">
								<label>Email</label>
								<input type="email" name="email" id="email" class="form-control" />
							</div>
							<div class="mb-3">
								<label>Age</label>
								<input type="number" name="age" id="age" class="form-control" />
							</div>
						</div>
						<div class="modal-footer">
							<input type="hidden" name="user_id" id="user_id" />
							<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
							<button type="button" class="btn btn-primary" onclick="${callback}()">${button_value}</button>
						</div>
					</form>
				</div>
			</div>
		</div>
		`;

		document.querySelector('#modalArea').innerHTML = html;

		userModalElement = new bootstrap.Modal(document.getElementById('userModal'));

		userModalElement.show();
	}

	function insertData()
	{
		let formElement = document.getElementById('userform');
		const formData = new FormData(formElement);
		// Convert formData to JSON
		const jsonData = {};
		formData.forEach((value, key) => {
			jsonData[key] = value;
		});
		// Make a POST request using Fetch API
		fetch('/users', {
			method : 'POST',
			body : JSON.stringify(jsonData),
			headers : {
				'Content-Type': 'application/json'
			}
		})
		.then(response => {
			return response.json();
		})
		.then(data => {
			userModalElement.hide();
			getData();
		});
	}

	getData();

	function getData(){
		fetch('/users')
		.then(response => {
			return response.json();
		})
		.then(data => {
			let html = '';
			if(data.length > 0){
				data.map((row) => {
					html += `
					<tr>
						<td>${row.name}</td>
						<td>${row.email}</td>
						<td>${row.age}</td>
						<td>
							<button type="button" class="btn btn-warning btn-sm" onclick="fetchSingleData('${row._id}')">Edit</button>
						</td>
					</tr>
					`;
				});
			} else {
				html = '<tr><td colspan="4" class="text-center">No Data Found</td></tr>';
			}
			document.getElementById('dataArea').innerHTML = html;
		});
	}

	function fetchSingleData(id){
		fetch(`/users/${id}`)
		.then(response => {
			return response.json();
		})
		.then(data => {
			makeModal('Edit User', 'Edit', 'editData');
			document.getElementById('name').value = data.name;
			document.getElementById('email').value = data.email;
			document.getElementById('age').value = data.age;
			document.getElementById('user_id').value = data._id;
		});
	}

	function editData(){
		let formElement = document.getElementById('userform');
		const formData = new FormData(formElement);
		let jsonData = {};
		formData.forEach((value, key) => { 
			jsonData[key] = value;
		});
		const userId = document.getElementById('user_id').value;
		fetch(`/users/${userId}`, {
			method : 'PUT',
			body : JSON.stringify(jsonData),
			headers : {
				'Content-Type': 'application/json'
			}
		})
		.then(response => {
			return response.json();
		})
		.then(data => {
			userModalElement.hide();
			getData();
		});
	}

	</script>
	

The update operation involves modifying existing items in the database. We'll define a route to handle incoming PUT or PATCH requests to update items.

server.js
	
	app.get('/users/:id', async (request, response) => {
		const user = await User.findById(request.params.id);
		response.status(200).json(user);
	});

	app.put('/users/:id', async (request, response) => {
		const userId = request.params.id;
		// Fetch the user from the database
		const user = await User.findById(userId);
		user.name = request.body.name;
		user.email = request.body.email;
		user.age = request.body.age;
		const updatedItem = await user.save();
		response.status(200).json(updatedItem);
	});
	

Delete Operation (DELETE):


For Delete MongoDB Data from Node CRUD Application, so first we have to create Delete button in each row of data in user.html file and then after we have to create deleteData() JavaScript function which will send DELETE data request to node route by using DELETE POST method.

user.html
	
	<!doctype html>
	<html lang="en">
		<head>
			<!-- Required meta tags -->
			<meta charset="utf-8">
			<meta name="viewport" content="width=device-width, initial-scale=1">

			<!-- Bootstrap CSS -->
			<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">

			<title>Build a CRUD App with Node.js and MongoDB</title>
		</head>
		<body>
			
			<div class="container">
				<h1 class="text-center mb-5 mt-5 text-danger"><b>Build a CRUD App with Node.js and MongoDB - Delete Data from MongoDB Database - 5</b></h1>
				<div class="card mb-5">
					<div class="card-header">
						<div class="row">
							<div class="col col-6">Sample Data</div>
							<div class="col col-6">
								<button type="button" class="btn btn-primary btn-sm float-end" onclick="makeModal('Add User', 'Add', 'insertData')">Add</button>
							</div>
						</div>
					</div>
					<div class="card-body">
						<div class="table-responsive">
							<table class="table table-bordered table-striped">
								<thead>
									<tr>
										<th>Name</th>
										<th>Email</th>
										<th>Age</th>
										<th>Action</th>
									</tr>
								</thead>
								<tbody id="dataArea"></tbody>
							</table>
						</div>
					</div>
				</div>
			</div>
		</body>
	</html>
	<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM" crossorigin="anonymous"></script>
	<div id="modalArea"></div>

	<script>

	var userModalElement;

	function makeModal(title, button_value, callback)
	{
		let html = `
		<div class="modal" tabindex="-1" id="userModal">
			<div class="modal-dialog">
				<div class="modal-content">
					<form id="userform">
						<div class="modal-header">
							<h5 class="modal-title">${title}</h5>
							<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
						</div>
						<div class="modal-body">
							<div class="mb-3">
								<label>Name</label>
								<input type="text" name="name" id="name" class="form-control" />
							</div>
							<div class="mb-3">
								<label>Email</label>
								<input type="email" name="email" id="email" class="form-control" />
							</div>
							<div class="mb-3">
								<label>Age</label>
								<input type="number" name="age" id="age" class="form-control" />
							</div>
						</div>
						<div class="modal-footer">
							<input type="hidden" name="user_id" id="user_id" />
							<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
							<button type="button" class="btn btn-primary" onclick="${callback}()">${button_value}</button>
						</div>
					</form>
				</div>
			</div>
		</div>
		`;

		document.querySelector('#modalArea').innerHTML = html;

		userModalElement = new bootstrap.Modal(document.getElementById('userModal'));

		userModalElement.show();
	}

	function insertData()
	{
		let formElement = document.getElementById('userform');
		const formData = new FormData(formElement);
		// Convert formData to JSON
		const jsonData = {};
		formData.forEach((value, key) => {
			jsonData[key] = value;
		});
		// Make a POST request using Fetch API
		fetch('/users', {
			method : 'POST',
			body : JSON.stringify(jsonData),
			headers : {
				'Content-Type': 'application/json'
			}
		})
		.then(response => {
			return response.json();
		})
		.then(data => {
			userModalElement.hide();
			getData();
		});
	}

	getData();

	function getData(){
		fetch('/users')
		.then(response => {
			return response.json();
		})
		.then(data => {
			let html = '';
			if(data.length > 0){
				data.map((row) => {
					html += `
					<tr>
						<td>${row.name}</td>
						<td>${row.email}</td>
						<td>${row.age}</td>
						<td>
							<button type="button" class="btn btn-warning btn-sm" onclick="fetchSingleData('${row._id}')">Edit</button>
							<button type="button" class="btn btn-danger btn-sm" onclick="deleteData('${row._id}')">Delete</button>
						</td>
					</tr>
					`;
				});
			} else {
				html = '<tr><td colspan="4" class="text-center">No Data Found</td></tr>';
			}
			document.getElementById('dataArea').innerHTML = html;
		});
	}

	function fetchSingleData(id){
		fetch(`/users/${id}`)
		.then(response => {
			return response.json();
		})
		.then(data => {
			makeModal('Edit User', 'Edit', 'editData');
			document.getElementById('name').value = data.name;
			document.getElementById('email').value = data.email;
			document.getElementById('age').value = data.age;
			document.getElementById('user_id').value = data._id;
		});
	}

	function editData(){
		let formElement = document.getElementById('userform');
		const formData = new FormData(formElement);
		let jsonData = {};
		formData.forEach((value, key) => { 
			jsonData[key] = value;
		});
		const userId = document.getElementById('user_id').value;
		fetch(`/users/${userId}`, {
			method : 'PUT',
			body : JSON.stringify(jsonData),
			headers : {
				'Content-Type': 'application/json'
			}
		})
		.then(response => {
			return response.json();
		})
		.then(data => {
			userModalElement.hide();
			getData();
		});
	}

	function deleteData(id){
		if(confirm("Are you sure you want to delete this?")){
			fetch(`/users/${id}`, {
				method : 'DELETE',
				headers : {
					'Content-Type': 'application/json'
				}
			})
			.then(response => {
				return response.json();
			})
			.then(data => {
				getData();
			});
		}
	}

	</script>
	

The delete operation involves removing items from the database. We'll define a route to handle incoming DELETE requests to delete items.

server.js
	
	app.delete('/users/:id', async (request, response) => {
		const userId = request.params.id;
		// Fetch the user from the database
		const user = await User.findById(userId);
		await user.deleteOne();
		response.status(200).json({ message : 'Deleted item' });
	});
	




Step 8: Testing Your Application:


For test Mongo DB Node.js CRUD application in browser, so we have goes to terminal and run node server.jsthis command which will start Node Development server and provide us http://localhost:3000/ base url of our Node Application.

Conclusion:


Congratulations! You've successfully built a Node.js CRUD application with MongoDB. This tutorial covered the basics, but there's still room for improvement and expansion. Feel free to explore additional features and functionalities to enhance your application further.

COMMENTS

Nama

Add,1,Ajax,2,ajax tutorial,1,Ajax with javascript,1,Ajax with node.js,1,application,2,array,1,array to string,1,array to string conversion nodejs,1,array to string in node js,1,array to string nodejs,1,Asynchronous JavaScript,1,authentication,1,authentication node js,1,authorization,1,availability,1,backend,1,bootstrap offcanvas dynamic content,1,bootstrap offcanvas dynamic content node.js,1,bootstrap offcanvas dynamic data,1,bootstrap offcanvas remote dynamic content,1,cart,1,centos 7,1,centos7,1,check,1,contact form node js,1,contact form nodemailer,1,contact us form node,1,conversion,1,create,1,crud,4,crud application,1,crud operation in node js,1,crud operation in node js with mysql,1,CSS,1,data,1,database,1,databases,1,datatables,1,DataTables integration in React.js,1,date range,1,delete,2,download,1,drag &amp; drop,1,drag and drop,1,drag and drop files,1,drag and drop multiple file,1,drag n drop,1,dynamic dropdown in react js,1,dynamic dropdown in react.js,1,ecommerce,2,edit,1,educational project,1,email address,1,email verification,1,email verification using jwt,1,express,3,expressjs,1,fetch,1,file upload,1,file upload in node js,1,files,1,filter,1,Front-end development tutorial,1,Frontend,1,GET,1,how to send email using node js,1,how to send emails in node js,1,html,1,html 2 pdf,1,html to pdf,1,html to pdf node,1,insert,2,insert data in mysql node js,1,Javascript,3,JavaScript tutorial,1,join array nodejs,1,js,1,json,1,jwt,3,jwt authentication,2,jwt authentication node js,1,jwt authentication php,1,jwt email verification,1,jwt login,1,jwt login php,1,jwt php example,1,jwt token,1,jwt token email verification,1,laravel 10,1,laravel 10 tutorial,1,laravel datatables,1,laravel datatables date range filter,1,laravel date filter,1,laravel date range filter,1,last insert id in node,1,learn reactjs,1,linux,1,live,2,live check email address availability,1,live search,1,load more data on click,1,load more data on click javascript,1,load more javscript node.js,1,load more nodejs,1,load more results,1,load more results with node js and ajax,1,login,1,merge 2 arrays in node js,1,merge array in nodejs,1,merge array node,1,merge two array in node js,1,MongoDB,1,mongodb crud,1,mongodb crud operations,1,multer,1,multiple file upload,1,mysql,7,mysql 8,1,mysql tutorial,1,mysql8,1,node,3,node js,8,node js array merge,1,node js array to string,1,node js crud,2,node js crud mysql,1,node js crud operation with mysql,1,node js load more pagination,1,node js mongodb crud,1,node js mysql last insert id,1,node js tutorial,2,node mongodb crud,1,node mysql get last insert id,1,node pdf,1,node.js,8,node.js array,1,node.js crud,1,node.js mysql,1,node.js tutorial,2,nodejs,9,nodejs array,1,nodejs array merge,1,nodejs create pdf,1,nodejs crud,1,nodejs pdf,1,nodejs pdf create,1,nodejs programming,1,offcanvas,1,open source,1,Optimizing web application performance,1,parking management system,1,parking management system in php,1,parking management system project,1,password,1,pdf-creator-node,1,php,3,php jwt authentication example,1,php jwt login,1,php login jwt,1,php parking management system,1,php project,1,PHP server-side processing,1,populate dropdown from database,1,programming tutorial,1,project,1,Puppeteer,1,Puppeteer HTML to PDF,1,React,1,react file upload,1,react js,2,react js dynamic dropdown,1,react js file upload validation,1,react js tutorial,1,react php myql,1,React.js,1,react.js dependent select,1,react.js file upload,1,Reactjs,4,reactJS CRUD,1,reactjs file upload,1,reactjs file upload app,1,reactjs file upload sample code,1,reactjs tutorial,1,read,1,register,1,registration,2,remove,1,request form node,1,reset,1,search,1,select,1,send activation email php,1,sending email using node js,1,server,1,Server-side data processing,1,shopping cart,1,shopping cart in node js,1,shopping cart javascript,1,shopping cart project in javascript,1,shopping cart using node js,1,shopping-cart,1,society management system in php,1,society management system php,1,society management system php source code,1,society management system project in php,1,society management system project php,1,source code,1,string,1,token,2,tutorial,8,update,2,using jwt for email verification,1,vanilla,1,vite,1,vitejs,1,vitejs crud app,1,web development,7,Web development guide,1,webslesson,2,what is jwt authentication,1,
ltr
item
kumpulan driver: Node.js CRUD Application with Mongo DB Database
Node.js CRUD Application with Mongo DB Database
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfeKr2AGeqdNVqAElf3RAFdCqbX6cxCERoEtuIy51xUvMNfJTFiKSzSfxcyRWxHMu_X2uFiqGP1jFz_4zpSRYS9FxGKljFENl3hgsfSpQmbYLA1rGEHYAUZ0Py_zlnY-VZCIsBvdc5hQ9qwxiRujh7me5tDeU4KOipAztkSi79ryqqnfGsTfX68gffCNGz/s16000/node-js-crud-with-mongodb-1-1-blog.jpg
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfeKr2AGeqdNVqAElf3RAFdCqbX6cxCERoEtuIy51xUvMNfJTFiKSzSfxcyRWxHMu_X2uFiqGP1jFz_4zpSRYS9FxGKljFENl3hgsfSpQmbYLA1rGEHYAUZ0Py_zlnY-VZCIsBvdc5hQ9qwxiRujh7me5tDeU4KOipAztkSi79ryqqnfGsTfX68gffCNGz/s72-c/node-js-crud-with-mongodb-1-1-blog.jpg
kumpulan driver
https://kepsuk.blogspot.com/2024/02/nodejs-crud-application-with-mongo-db_28.html
https://kepsuk.blogspot.com/
http://kepsuk.blogspot.com/
http://kepsuk.blogspot.com/2024/02/nodejs-crud-application-with-mongo-db_28.html
true
6399859916032798219
UTF-8
Loaded All Posts Not found any posts VIEW ALL Readmore Reply Cancel reply Delete By Home PAGES POSTS View All RECOMMENDED FOR YOU LABEL ARCHIVE SEARCH ALL POSTS Not found any post match with your request Back Home Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sun Mon Tue Wed Thu Fri Sat January February March April May June July August September October November December Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec just now 1 minute ago $$1$$ minutes ago 1 hour ago $$1$$ hours ago Yesterday $$1$$ days ago $$1$$ weeks ago more than 5 weeks ago Followers Follow THIS PREMIUM CONTENT IS LOCKED STEP 1: Share to a social network STEP 2: Click the link on your social network Copy All Code Select All Code All codes were copied to your clipboard Can not copy the codes / texts, please press [CTRL]+[C] (or CMD+C with Mac) to copy Table of Content