
Оглавление
Sokhavuth TIN ・ Aug 11 ・ 2 min read
GitHub: https://github.com/Sokhavuth/opine-job
Deno Deploy: https://khmerweb-job.deno.dev/users/post
Мы можем создать маршрут к странице поста в приборной панели как подмаршрут предопределенного основного маршрута «/users». Таким образом, мы можем подключить этот подмаршрут к маршруту «/users» как «/users/post». Следуя шаблону MVC, мы можем создать маршрут «/users/post», который будет связан с методами в папках контроллеров, представлений и моделей, чтобы отобразить страницу поста на приборной панели.
Более того, поскольку маршрут «/users/post» ведет на запрещенную страницу, и только зарегистрированные пользователи могут попасть в эту область, нам нужно использовать сессию приложения, чтобы проверить, аутентифицирован ли пользователь, пытающийся попасть в приборную панель, или нет. Если они аутентифицированы, их пользовательские данные могут быть зарегистрированы в базе данных Redis.
// routes/users.ts
import { Router } from "../deps.ts";
const router = Router();
import login from "./users/login.js";
router.use("/", login);
import post from "./users/post.js";
router.use("/post", post);
export default router;
// routes/users/post.js
import { Router } from "../../deps.ts";
const router = new Router();
import post from "../../controllers/users/post.js"
router.get("/", async (req, res) => {
if(await req.mysession.get("user")){
post.getPage(req, res);
}else{
res.redirect("/users");
}
});
export default router;
// controllers/users/post.js
class Post{
async getPage(req, res){
const config = req.mysetting();
config.page_title = "Post Page";
config.route = "/users/post";
const html = "Post page";
res.send(html);
}
}
export default new Post();