part 12 done
This commit is contained in:
@@ -0,0 +1,19 @@
|
||||
const express = require("express");
|
||||
const router = express.Router();
|
||||
const redis = require("../redis");
|
||||
|
||||
const configs = require("../util/config");
|
||||
|
||||
let visits = 0;
|
||||
|
||||
/* GET index data. */
|
||||
router.get("/", async (req, res) => {
|
||||
visits++;
|
||||
|
||||
res.send({
|
||||
...configs,
|
||||
visits,
|
||||
});
|
||||
});
|
||||
|
||||
module.exports = router;
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
const express = require("express");
|
||||
const router = express.Router();
|
||||
const { getAsync } = require("../redis/index");
|
||||
|
||||
/* GET todos listing. */
|
||||
router.get("/", async (_, res) => {
|
||||
const statistics = await getAsync("added_todos");
|
||||
res.send(statistics);
|
||||
});
|
||||
|
||||
module.exports = router;
|
||||
@@ -0,0 +1,54 @@
|
||||
const express = require("express");
|
||||
const { Todo } = require("../mongo");
|
||||
const router = express.Router();
|
||||
const { getAsync, setAsync } = require("../redis/index");
|
||||
|
||||
/* GET todos listing. */
|
||||
router.get("/", async (_, res) => {
|
||||
const todos = await Todo.find({});
|
||||
res.send(todos);
|
||||
});
|
||||
|
||||
/* POST todo to listing. */
|
||||
router.post("/", async (req, res) => {
|
||||
const todo = await Todo.create({
|
||||
text: req.body.text,
|
||||
done: false,
|
||||
});
|
||||
const todoCounter = await getAsync("added_todos");
|
||||
setAsync("added_todos", Number(todoCounter) + 1);
|
||||
res.send(todo);
|
||||
});
|
||||
|
||||
const singleRouter = express.Router();
|
||||
|
||||
const findByIdMiddleware = async (req, res, next) => {
|
||||
const { id } = req.params;
|
||||
req.todo = await Todo.findById(id);
|
||||
if (!req.todo) return res.sendStatus(404);
|
||||
|
||||
next();
|
||||
};
|
||||
|
||||
/* DELETE todo. */
|
||||
singleRouter.delete("/", async (req, res) => {
|
||||
await req.todo.delete();
|
||||
res.sendStatus(200);
|
||||
});
|
||||
|
||||
/* GET todo. */
|
||||
singleRouter.get("/", async (req, res) => {
|
||||
res.send(req.todo);
|
||||
});
|
||||
|
||||
/* PUT todo. */
|
||||
singleRouter.put("/", async (req, res) => {
|
||||
const todo = await Todo.findByIdAndUpdate(req.todo._id, {
|
||||
done: true,
|
||||
});
|
||||
res.send(todo);
|
||||
});
|
||||
|
||||
router.use("/:id", findByIdMiddleware, singleRouter);
|
||||
|
||||
module.exports = router;
|
||||
Reference in New Issue
Block a user