NodeJS передать роутинг выше

Есть проект с такой структурой:

        |_catalog(dir) _ index.js
        |              _ method1.js
        |              _ method2.js
        |
        |_app.js 
  

Мне нужно, что бы при запросе по site.com/catalog/
модуль app.js передавал обработку модулю index.js, а index.js обрабатывал urlы site.com/catalog/method1 site.com/catalog/method2 ну и вызывал соответствующие модули.

Пробовал вот так:

app.js

const mainCatalog = require ("./catalog/index");

app.get('/catalog*', function (req, res) {
    mainCatalog(); 
});

index.js

const method1 = require ("./catalog/method1");

function foo () {
    app.get('/catalog/method1', function (req, res) {
        method1();
    });
}

module.exports = foo;

Но ничего не выходит.


Ответы (1 шт):

Автор решения: Javascript Dev

Возможное, вот так:
index.js

const express = require('express');
const method1 = require ("./catalog/method1");

const router = express.Router(); // Создаем роутер

router.get('/method1', function(req, res) { // Самая обычная обработка запроса
    method1();
});

module.exports = router;

app.js

// Вместо этого комментария вероятное стоит require('express')
const mainCatalog = require ("./catalog/index");

// Тут где-то инициализация app

app.use('/catalog', mainCatalog); // Теперь по запросу "/catalog/mathod1" вызывается method1()
→ Ссылка