Question: Mongo DB errors. Please help. Thank you. const express = require ( ' express ' ) ; const cors = require ( ' cors '
Mongo DB errors. Please help. Thank you.
const express requireexpress;
const cors requirecors;
const multer requiremulter;
const Joi requirejoi;
const mongoose requiremongoose;
const app express;
Middleware Setup
app.usecors;
app.useexpressjson;
app.useexpressstaticpublic;
Multer Storage Configuration
const storage multer.diskStorage
destination: req file, cb
cbnullpublicimages; Ensure the directory exists
filename: req file, cb
cbnull Date.now file.originalname; Unique filename
;
const upload multer storage: storage ;
MongoDB Connection
const mongoURI process.env.MONGODBURI "mongodbsrv::@clustermongodb.netgearInventoryretryWritestrue&wmajority";
mongoose.connectmongoURI useNewUrlParser: true, useUnifiedTopology: true
then console.logMongoDB connected successfully"
catcherr console.errorMongoDB connection error:", err;
Mongoose Schema and Model
const gearSchema new mongoose.Schema
name: type: String, required: true
brand: type: String, required: true
price: type: Number, required: true
imgname: type: String
rating: type: Number
features: String
;
const Gear mongoose.modelGear gearSchema;
Joi Schema for Validation
const itemSchema Joi.object
name: Joi.stringrequired
brand: Joi.stringrequired
price: Joi.numberrequired
imgname: Joi.stringoptional
rating: Joi.numberoptional
features: Joi.arrayitemsJoistringoptional
;
Serve Static HTML
app.getreq res
res.sendFiledirname indexhtml;
;
Upload Route Handling file uploads
app.postapiupload upload.singlegearreq res
if req.file
return res.statussendNo file uploaded.;
console.logFile uploaded successfully: req.file;
res.send message: 'File uploaded successfully! file: req.file ;
;
Get all gear items
app.getapigear async req res
try
const items await Gear.find;
res.jsonitems;
catch err
console.errorError fetching gear items: err;
res.statusjson success: false, message: 'Failed to fetch gear items' ;
;
Create a new gear item
app.postapigear async req res
const error itemSchema.validatereqbody;
if error
console.logValidation error: error.details;
return res.statusjson success: false, message: error.detailsmessage ;
try
const newItem new Gearreqbody;
await newItem.save;
console.logNew gear item added: newItem;
res.statusjson success: true, newItem ;
catch err
console.errorError saving gear item: err;
res.statusjson success: false, message: 'Failed to add gear item' ;
;
Update an existing gear item by ID
app.putapigear:id async req res
const error itemSchema.validatereqbody;
if error
console.logValidation error: error.details;
return res.statusjson success: false, message: error.detailsmessage ;
try
const updatedItem await Gear.findByIdAndUpdatereqparams.id req.body, new: true ;
if updatedItem
return res.statusjson success: false, message: 'Item not found' ;
console.logGear item updated: updatedItem;
res.json success: true, updatedItem ;
catch err
console.errorError updating gear item: err;
res.statusjson success: false, message: 'Failed to update gear item' ;
;
Delete a gear item by ID
app.deleteapigear:id async req res
try
const deletedItem await Gear.findByIdAndDeletereqparams.id;
if deletedItem
return res.statusjson success: false, message: 'Item not found' ;
console.logGear item deleted: deletedItem;
res.json success: true, message: 'Item deleted successfully' ;
catch err
console.errorError deleting gear item: err;
res.statusjson success: false, message: 'Failed to delete gear item' ;
;
Listening on the desired port
const PORT process.env.PORT ;
app.listenPORT
console.logListening on port $PORT;
;
Step by Step Solution
There are 3 Steps involved in it
1 Expert Approved Answer
Step: 1 Unlock
Question Has Been Solved by an Expert!
Get step-by-step solutions from verified subject matter experts
Step: 2 Unlock
Step: 3 Unlock
