intern-Assignment/Node-Assignments/HandleUsers/index.js

54 lines
1.3 KiB
JavaScript
Raw Normal View History

2025-01-31 09:50:39 +00:00
const express = require("express");
const app = express();
const fs = require("fs");
const users = require('./MOCK_DATA.json');
const PORT = 3000;
app.use(express.urlencoded({ extended: false }));
app.get("/users", (req, res) => {
const html = `
<ol>
${users.map(user => `<li>${user.first_name}</li>`).join("")}
</ol>`
res.send(html);
})
app.get("/api/users", (req, res) => {
return res.json(users) //for PC or Desktop
});
app.post("/api/users", (req, res) => {
const body = req.body;
users.push({...body, id: users.length + 1});
fs.writeFile('./MOCK_DATA.json', JSON.stringify(users), (err, data) => {
return res.json({ status: "Success", id: users.length })
})
});
// app.patch("/api/users/:id", (req, res) => {
// return res.json({status: pending})
// });
app.route("/api/users/:id")
.get((req, res) => {
const id = Number(req.params.id);
const user = users.find((user) => user.id === id);
return res.json(user);
}).patch((req, res) => {
const body = req.body;
return res.json({ status: "pending" })
})
.delete((req, res) => {
return res.json({ status: "pending" })
})
app.listen(PORT, () => {
console.log(`Server is running on ${PORT}`);
})