I am beginner in web dev and trying to create a Full stack project using Mysql Express React Node.js. I tried creating a new device using parameter like serialno(Primary key for db),brand and Modelname. When I ran the api in Postman it didn't read the input and gave message from Contoller js( message: "Content can not be empty!")
server.js
const express = require("express");
const bodyParser = require("body-parser");
const cors = require("cors");
const app = express();
var corsOptions = {
origin: "http://localhost:8081"
};
app.use(cors(corsOptions));
// parse requests of content-type - application/json
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
const db = require("./app/models");
db.sequelize.sync();
// simple route
app.get("/", (req, res) => {
res.json({ message: "Welcome " });
});
require("./app/routes/routes")(app);
// set port, listen for requests
const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
console.log(`Server is running on port ${PORT}.`);
});
controller.js
(using the first create function, error message:"Content can not be empty!")
const db = require("../models");
const Device = db.devices;
const Op = db.Sequelize.Op;
// Create and Save a new Devices
exports.create = (req, res) => {
// Validate request
if (!req.body.serialno) {
res.status(400).send({
message: "Content can not be empty!"
});
return;
}
// Create a Devices
const device = {
serialno: req.body.serialno,
brand: req.body.brand,
modelname: req.body.modelname
};
// Save Devices in the database
Device.create(device)
.then(data => {
res.send(data);
})
.catch(err => {
res.status(500).send({
message:
err.message || "Some error occurred while creating the Devices."
});
});
};
// Retrieve all Devicess from the database.
exports.findAll = (req, res) => {
const serialno = req.query.serialno;
var condition = serialno ? { serialno: { [Op.like]: `%${serialno}%` } } : null;
Device.findAll({ where: condition })
.then(data => {
res.send(data);
})
.catch(err => {
res.status(500).send({
message:
err.message || "Some error occurred while retrieving Devicess."
});
});
};
// Find a single Devices with an id
exports.findOne = (req, res) => {
const id = req.params.id;
Device.findByPk(id)
.then(data => {
res.send(data);
})
.catch(err => {
res.status(500).send({
message: "Error retrieving Devices with id=" + id
});
});
};
// Update a Devices by the id in the request
exports.update = (req, res) => {
const id = req.params.id;
Device.update(req.body, {
where: { id: id }
})
.then(num => {
if (num == 1) {
res.send({
message: "Devices was updated successfully."
});
} else {
res.send({
message: `Cannot update Devices with id=${id}. Maybe Devices was not found or req.body is empty!`
});
}
})
.catch(err => {
res.status(500).send({
message: "Error updating Devices with id=" + id
});
});
};
// Delete a Devices with the specified id in the request
exports.delete = (req, res) => {
const id = req.params.id;
Device.destroy({
where: { id: id }
})
.then(num => {
if (num == 1) {
res.send({
message: "Devices was deleted successfully!"
});
} else {
res.send({
message: `Cannot delete Devices with id=${id}. Maybe Devices was not found!`
});
}
})
.catch(err => {
res.status(500).send({
message: "Could not delete Devices with id=" + id
});
});
};
// Delete all Devicess from the database.
exports.deleteAll = (req, res) => {
Device.destroy({
where: {},
truncate: false
})
.then(nums => {
res.send({ message: `${nums} Devicess were deleted successfully!` });
})
.catch(err => {
res.status(500).send({
message:
err.message || "Some error occurred while removing all Devicess."
});
});
};
postman
request
http://localhost:3000/api/devices
{
"serialno":123,
"brand":"apple",
"modelname":"XS"
}
model.js
module.exports = (sequelize, Sequelize) => {
const Device = sequelize.define("device", {
serialno: {
type: Sequelize.INTEGER
},
brand: {
type: Sequelize.STRING
},
modelname: {
type: Sequelize.STRING
}
});
return Device;
};
routes js
module.exports = app => {
const devices = require("../controllers/controller.js");
var router = require("express").Router();
// Create a new devicesial
router.post("/", devices.create);
// Retrieve all devices
router.get("/", devices.findAll);
// Retrieve all published devices
// Retrieve a single deviceswith id
router.get("/:id", devices.findOne);
// Update a deviceswith id
router.put("/:id", devices.update);
// Delete a deviceswith id
router.delete("/:id", devices.delete);
// Delete all devices
router.delete("/", devices.deleteAll);
app.use('/api/devices', router);
};