TransWikia.com

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

Stack Overflow на русском Asked on November 20, 2021

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

        |_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;

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

One Answer

Возможное, вот так:
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()

Answered by Ivan Didyk on November 20, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP