Complete Backend Server Side Using Mongoose, Mongodb, Mongoose Compass, Postman, & Axios
Complete Backend Server Side Using Mongoose, Mongodb, Mongoose Compass, Postman, & Axios
INDEX.JS
const express = require("express");
const bodyParser = require("body-parser");
const mongoose = require("mongoose");
//middleware
app.use(bodyParser.json());
app.use(logger);
//routes
app.use("/cats", catRouter);
app.use("/agencies", agencyRouter);
INSIDE CATS.JS:
1
const express = require(‘express’);
const catRouter = express.Router();
//POST
.post((req, res) => {
const newCat = new CatModel(req.body);
newCat.save((err, savedCat) => {
if (err) return res.send(err);
CatModel.populate(savedCat, { path: "agencyId" }, (err, popCat) => {
if (err) return res.send(err);
res.status(201).send(popCat);
});
});
});
2
if (err) return res.send(err);
if (!foundCat) return res.status(404).send({ message: "Cat not found" })
res.status(200).send(foundCat);
});
})
// DELETE one request
.delete((req, res) => {
CatModel.findOneAndRemove({ _id: req.params.id }, (err, deletedCat) => {
if (err) return res.send(err);
if (!deletedCat) return res.status(404).send({ message: "Cat not found" })
res.status(204).send();
})
})
//PUT one
.put((req, res) => {
CatModel.findOneAndUpdate({ _id: req.params.id }, req.body, { new: true })
.populate("agencyId")
.exec((err, updatedCat) => {
if (err) return res.send(err);
if (!updatedCat) return res.status(404).send({ message: "Cat not found" });
res.status(200).send(updatedCat);
})
})
module.exports = catRouter;
INSIDE /ROUTES/AGENCIES.JS:
//GET ONE
const AgencyModel = require("../models/agencies.js");
agencyRouter.route("/")
.get((req, res) => {
AgencyModel.find(req.query, (err, foundAgencies) => {
3
if (err) return res.send(err);
res.status(200).send(foundAgencies);
});
})
//POST ONE
.post((req, res) => {
const newAgency = new AgencyModel(req.body);
newAgency.save((err, savedAgency) => {
if (err) return res.send(err);
res.status(201).send(savedAgency);
});
})
module.exports = agencyRouter;
INSIDE THE MODELS FOLDER-
agencies.js
cats.js
INSIDE MODELS/CATS.JS:
//Schema is a constructor
// determines the template for all documents in a collection
4
},
agencyId: {
type: mongoose.Schema.Types.ObjectId,
required: true,
ref: "agencies"
}
})
module.exports = CatModel;
INSIDE MODELS/AGENCIES.JS:
TO CONNECT YOUR LOCAL SERVER TO YOUR CLIENT SIDE SETUP YOULL NEED TO GO INTO
5
YOUR PACKAGE.JSON FILE INSIDE YOUR CLIENT FOLDER AND CREATE AN OBJECT CALLED
PROXY AND SET IT TO THE PORT OF YOU HAVE YOUR SERVER ON
EX:
"proxy": "http://localhost:8080"