Как использовать маршрутизацию с вложенными подфлодерами в экспресс-приложении nodejs?

Я работаю над проектом узла, используя экспресс. У меня есть несколько папок в папке маршрутов, которые включают несколько файлов .js с маршрутами. Я хочу сохранить структуру таким образом, чтобы мой код был аккуратным и ясным. Как аккуратно требовать маршруты в файле app.js?

  1. Увидев это, https://github.com/searsaw/express-routing-example/blob/master/app.js, я пробовал просто:
const routes = require('./routes');
app.use('/', routes);

но это не работает и приводит в действие мои маршруты.

  1. Увидев это, я тоже попробовал метод require-dir, но он тоже не работает. Nodejs Express: маршруты в отдельных файлах

Моя структура папок выглядит так:

-routes
    -admin
        -login.js
        -CRUD_event.js
        -CRUD_venue.js
     -client
         -login.js
         -CR_event.js
         -CR_venue.js

Я не хочу портить свой файл app.js, я знаю, что все маршруты могут требоваться отдельно, но это было бы довольно просто требованием кода в app.js. Я хочу сохранить структуру каталогов маршрутов и потребовать их в app.js максимально оптимизированным способом.


person fight_club    schedule 18.06.2019    source источник


Ответы (2)


Вам нужно создать файл index.js в папке маршрутов, так как вам требуется папка из вашего app.js, иначе он не будет знать, какой файл искать. В этом файле (index.js) вам нужно указать маршруты для администраторов и клиентов и требовать их по мере необходимости.

В https://github.com/searsaw/express-routing-example/blob/master/app.js вы можете видеть, что в каждом каталоге есть файл index.js.

Если вы не хотите создавать файл index.js, вы должны указать имя файла в операторе require.

person Tech no Kami    schedule 18.06.2019
comment
Похоже, вы сами это узнали! - person Tech no Kami; 18.06.2019

Я нашел, где я иду не так. Этот https://github.com/searsaw/express-routing-example/blob/master/app.js на самом деле все объясняет. В папке маршрутов есть файл index.js, который требует и использует все остальные маршруты, а затем экспортируется. Это полностью решает проблему.

person fight_club    schedule 18.06.2019