Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
19 views

Program 5

This document defines a RESTful API using Node.js, Express, and MongoDB. It includes endpoints for GET, POST, PUT, and DELETE requests to manage data resources in the MongoDB database. The API connects to MongoDB using Mongoose for object modeling. It defines a schema and model for the data. GET endpoints retrieve all data and data by ID, while POST, PUT, and DELETE endpoints create, update, and delete data in the database by ID. The server runs on an environment variable or default port 3000.

Uploaded by

satvik
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
19 views

Program 5

This document defines a RESTful API using Node.js, Express, and MongoDB. It includes endpoints for GET, POST, PUT, and DELETE requests to manage data resources in the MongoDB database. The API connects to MongoDB using Mongoose for object modeling. It defines a schema and model for the data. GET endpoints retrieve all data and data by ID, while POST, PUT, and DELETE endpoints create, update, and delete data in the database by ID. The server runs on an environment variable or default port 3000.

Uploaded by

satvik
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 2

Program-5 Design and implement a RESTful API using Node.

js, Express, and a


database of your choice.
Define endpoints for managing resources, such as creating, reading, updating, and
deleting
data.

// Import required modules


const express = require("express"); // Import the Express framework
const mongoose = require("mongoose"); // Import Mongoose for MongoDB object
modeling
const app = express(); // Create an instance of the Express application
const PORT = process.env.PORT || 3000; // Set the port for the server, use
environment variable or default to 3000

app.use(express.json()); // Middleware to parse incoming JSON requests

// Connect to MongoDB
mongoose.connect("mongodb://localhost:27017/dataDB_1", {
useNewUrlParser: true, // Use new URL parser
useUnifiedTopology: true, // Use new Server Discovery and Monitoring engine
})
.then(()=>{
console.log("Connection to DB Successful !"); // Log success message if
connection is successful
})
.catch((err)=>{
console.log("Connection to DB Failed !"); // Log error message if connection
fails
})

// Define a Mongoose schema for the data


const dataSchema = new mongoose.Schema({
id: Number,
name: String,
});

// Create a Mongoose model based on the schema


const Data = mongoose.model("Data", dataSchema);

// Define a route for the root endpoint


app.get("/", (req, res) => {
res.send("Home"); // Respond with "Home" when the root endpoint is accessed
});

// Retrieve all data from MongoDB


app.get("/api/data", async (req, res) => {
try {
const allData = await Data.find(); // Retrieve all data entries from the "Data"
collection in MongoDB
res.json(allData); // Respond with the retrieved data in JSON format
} catch (err) {
console.error(err);
res.status(500).json({ message: "Internal Server Error" }); // Handle errors
and respond with an internal server error
}
});

// Create a new data entry in MongoDB


app.post('/api/data', async (req, res) => {
try {
const nItem = req.body; // Get the data from the request body
const newData = new Data(nItem); // Create a new instance of the Data model
with the received data
await newData.save(); // Save the new data entry to the MongoDB collection
res.json(newData); // Respond with the saved data in JSON format
} catch (err) {
console.error(err);
res.status(500).json({ message: "Internal Server Error" }); // Handle errors
and respond with an internal server error
}
});

// Update data by ID in MongoDB


app.put('/api/data/:id', async (req, res) => {
try {
const id = req.params.id; // Get the ID from the request parameters
const updatedItem = req.body; // Get the updated data from the request body
await Data.findOneAndUpdate({ id }, updatedItem); // Find and update the
corresponding document in MongoDB
res.json(updatedItem); // Respond with the updated data in JSON format
} catch (err) {
console.error(err);
res.status(500).json({ message: "Internal Server Error" }); // Handle errors
and respond with an internal server error
}
});

// Delete data by ID from MongoDB


app.delete('/api/data/:id', async (req, res) => {
try {
const id = req.params.id; // Get the ID from the request parameters
await Data.findOneAndDelete({ id }); // Find and delete the corresponding
document in MongoDB
res.json({ message: "Data deleted" }); // Respond with a JSON message
indicating successful deletion
} catch (err) {
console.error(err);
res.status(500).json({ message: "Internal Server Error" }); // Handle errors
and respond with an internal server error
}
});

// Start the server and listen on the specified port


app.listen(PORT, (err) => {
if (err) console.log(err); // Log any errors that occur while starting the server
console.log("Server running on port: ", PORT); // Log a message indicating that
the server is running on the specified port
});

You might also like