typescript - การกำหนดเส้นทาง router ไปยัง router อื่นในเฟรมเวิร์ก Oak เหมือนกับ ExpressJS
สิ่งที่ฉันต้องการทำให้สำเร็จคือสร้างหลายเราเตอร์และเร้าเตอร์หลักที่ส่งคำขอไปยังเราเตอร์อื่น ๆ
router.use("/strategy", strategyRoutes);
router.use("/account", accountRoutes);
router, strategyRoutes และ accountRoutes เป็นวัตถุ express.Router() ฉันสามารถทำได้ใน express ฉันสงสัยว่ามีวิธีใดบ้างที่จะเลียนแบบสิ่งนี้ใน Oak Framework ของ Deno router ของพวกเขามีฟังก์ชัน router.use แต่รับฟังก์ชัน middleware ไม่ใช่ router อื่น
คำตอบ #1
ปัจจุบันยังไม่รองรับ มีปัญหาเปิดเกี่ยวกับคุณลักษณะนี้:
https://github.com/oakserver/oak/issues/6
คำตอบ #2
หลังจากตรวจสอบปัญหาแล้ว ฉันพบวิธีแก้ไขปัญหานี้ เหตุผลที่ฉันต้องการฟีเจอร์นี้คือเพื่อห่อหุ้มตรรกะการกำหนดเส้นทางในโมดูลต่างๆ วิธีแก้ของฉันคือ:
// router/index.ts
import { Router } from "https://deno.land/x/oak/mod.ts";
import withAccountRoutes from "./account.ts";
import withContractRoutes from "./contract.ts";
const router = new Router();
withAccountRoutes(router);
withContractRoutes(router);
export default router;
// router/account.ts
import { Router } from "https://deno.land/x/oak/mod.ts";
const SUB_ROUTE = "/account";
const withAccountRoutes = (router: Router) => {
router
.get(SUB_ROUTE + "/new", ({ request, response, cookies }) => {
console.log("Cookies : ", cookies);
response.body = "Will be avaiable soon";
})
.get(SUB_ROUTE + "/current", ({ request, response, cookies }) => {
response.body = "You are the wise one";
});
};
export default withAccountRoutes;
