You are on page 1of 4

SERVER.

JS:

const express = require("express");


const app = express();
const port = process.env.PORT || 8000;
const bodyParser = require("body-parser");
const morgan = require("morgan");
const mongoose = require("mongoose");

mongoose.connect("mongodb://localhost/sports", (err) => {


if (err) throw err;
console.log("Connected to the database");
});

app.use(morgan("dev"));
app.use(bodyParser.json());

// const Chore = require("./models/chore");

app.use("/products", require("./routes/products"));
app.use("/kids", require("./routes/kids"));

app.listen(port, () => {
console.log(`Server is running on port ${port}`);
});

ROUTES FOLDER
PRODUCTS.JS
const express = require("express");
const productsRouter = express.Router();
const Product = require("../models/product");

productsRouter.get("/", (req, res) => {


Product.find((err, products) => {
if (err) return res.status(500).send(err);
return res.send(products);
});
});

productsRouter.post("/", (req, res) => {


const newProduct = new Product(req.body);
newProduct.save(err => {
if (err) return res.status(500).send(err);
return res.send(newProduct);
});
});

productsRouter.get("/:id", (req, res) => {


Product.findById(req.params.id, (err, product) => {
if (err) return res.status(500).send(err);
return res.send(product);
});
});

productsRouter.put("/:id", (req, res) => {


Product.findByIdAndUpdate(req.params.id, req.body, {new: true}, (err, updatedProduct) => {
if (err) return res.status(500).send(err);
return res.send(updatedProduct);
});
});

productsRouter.delete("/:id", (req, res) => {


Product.findByIdAndRemove(req.params.id, (err, removedProduct) => {
if (err) return res.status(500).send(err);
return res.send(removedProduct);
});
});

module.exports = productsRouter;

KIDS.JS:

const express = require("express");


const kidsRouter = express.Router();
const Kid = require("../models/kid");
const Chore = require("../models/chore");

kidsRouter.get("/", (req, res) => {


Kid.find((err, kids) => {
if (err) return res.status(500).send(err);
return res.send(kids);
});
});

kidsRouter.post("/", (req, res) => {


const newKid = new Kid(req.body);
newKid.save(err => {
if (err) return res.status(500).send(err);
return res.send(newKid);
});
});

kidsRouter.get("/:id", (req, res) => {


Kid.findById(req.params.id)
.populate("chores")
.exec((err, kid) => {
if (err) return res.status(500).send(err);
return res.send(kid);
});
});

kidsRouter.put("/:id", (req, res) => {


Kid.findByIdAndUpdate(req.params.id, req.body, {new: true}, (err, updatedKid) => {
if (err) return res.status(500).send(err);
return res.send(updatedKid);
});
});

kidsRouter.delete("/:id", (req, res) => {


Kid.findByIdAndRemove(req.params.id, (err, removedKid) => {
if (err) return res.status(500).send(err);
return res.send(removedKid);
});
});

module.exports = kidsRouter;

MODELS FOLDER
PRODUCTS.JS

const mongoose = require("mongoose");


const Schema = mongoose.Schema;

const productsSchema = new Schema({


name: {
type: String,
required: true
},
quantity: {
type: Number,
required: true
},
image: String,
description: String
});

module.exports = mongoose.model("Product", productsSchema);

KIDS.JS:
const mongoose = require("mongoose");
const Schema = mongoose.Schema;

const kidsSchema = new Schema({


name: {
type: String,
required: true
},
chores: [{
type: Schema.Types.ObjectId,
ref: "Chore"
}]
});
module.exports = mongoose.model("Kid", kidsSchema);

CHORES.JS:
const mongoose = require("mongoose");
const Schema = mongoose.Schema;

const choresSchema = new Schema({


name: {
type: String,
required: true
}
});

module.exports = mongoose.model("Chore", choresSchema);

You might also like