54 lines
1.3 KiB
JavaScript
54 lines
1.3 KiB
JavaScript
|
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}`);
|
||
|
})
|
||
|
|