DRY 코드용 익스프레스 글로벌 라우터

이번 포스팅은 DRY코드를 위해 익스프레스에서 글로벌 라우터를 사용하는 방법에 대한 글입니다.

Express로 Node.js 앱을 개발할 때 일반적으로 두 개 이상의 경로가 있습니다.
express.Router 클래스를 사용하여 각 경로를 별도의 파일에 넣으면 항상 동일한 코드 블록으로 시작해야 합니다.

const express = require("express")
const router = express.Router()


전역 라우터를 사용하는 더 나은 방법이 있습니다.

주 서버 파일에서 express.Routerglobal.router 변수에 할당된 router로 구문 분석하고 각 경로에서 이 전역 라우터만 사용합니다.

main"/" 및 about"/about"의 두 가지 경로만 있다고 가정해 보겠습니다.
일반적인 방법에 따라 자체 파일의 모든 경로는 다음과 같습니다.

// /routes/aRoute.js
const express = require("express")
const router = express.Router()

router.get("/", (req, res) => {
    res.send("A route content")
})


그런 다음 주 서버 파일에는 다음이 있습니다.

// /index.js
...
app.use("/a-route", require("./routes/aRoute"))
...


그러나 글로벌 라우터를 사용하면 다음을 수행할 수 있습니다.

// /index.js

const express = require("express")
const app = express()

// Parse an express router to a global router variable
const router = (global.router = express.Router())
// Use the global router variable
app.use(router)

// Routes
app.use("/", require("./routes/main"))
app.use("/", require("./routes/about"))

// Launching the app on port 3000
app.listen(3000, () => {
    console.log(`App 🚀 @ http://localhost:3000`)
})


그러면 두 경로가 다음과 같이 표시됩니다.

// /routes/main.js

const router = global.router

router.get("/", (req, res) => {
    res.send("Welcome to the main route")
})

module.exports = router



// /routes/about.js

const router = global.router

router.get("/about", (req, res) => {
    res.send("Welcome to the about route")
})

module.exports = router


이것이 DRY 코드를 작성하는 데 도움이 되기를 바랍니다.

SYA,
LebCit.

좋은 웹페이지 즐겨찾기