In defining route, we have plenty of choices - we could put all routes in single file and import it into the entry point, or we could create a main route and many sub-routes in different files and import all sub-routes into the main route that will be imported into the entry point. In fact, we could define two routes to the dashboard job and category pages as below:
//route/admin.js
import express from 'express'
const adminRoute = express.Router()
import jobRoute from './admin/job.js'
adminRoute.use('/job',jobRoute)
import categoryRoute from './admin/category.js'
adminRoute.use('/category',categoryRoute)
export default adminRoute
//route/admin/job.js
import express from 'express'
const jobRoute = express.Router()
import job from '../../controller/admin/job.js'
jobRoute.get('/',async (req,res,next)=>{
    if(req.session.user){
        job.getItem(req,res)
    }else{
        res.redirect('/login')
    }
})
export default jobRoute
// controller/admin/job.js
import config from '../../config.js'
class Job{
    constructor(){
        (async () => {
            this.config = await config()
        })()
    }
    getItem(req,res){
        this.config.pageTitle = 'ទំព័រការងារ'
        this.config.route = '/admin/job'
        this.config.type = 'job'
        res.render('base',{data: this.config})
    }
}
export default await new Job()
// route/admin/category.js
import express from "express"
const categoryRoute = express.Router()
import category from '../../controller/admin/category.js'
categoryRoute.get('/',async (req,res,next) => {
    if(req.session.user){
        category.getItem(req,res)
    }else{
        res.redirect('/login')
    }
})
export default categoryRoute
// controller/admin/category.js
import config from '../../config.js'
class Category{
    constructor(){
        (async () => {
            this.config = await config()
        })()
    }
    getItem(req,res){
        this.config.pageTitle = 'ទំព័រជំពូក'
        this.config.route = '/admin/category'
        this.config.type = 'category'
        res.render('base',{data:this.config})
    }
}
export default await new Category()
