Объединение нескольких маршрутов для API nodejs - PullRequest
0 голосов
/ 25 мая 2018

Я создаю API и имею несколько маршрутов.Моя структура папок выглядит следующим образом

-api
 -controllers
 -routes
  -videoRoutes
  -userRoutes
  -mainRoutes
 -server

Внутри моих маршрутов мои вызовы API.Ниже приведен пример моих api-маршрутов в userRoutes

 module.exports = function(app) {
var user = require('../controllers/userController');

//user routes
app.route('/api/v1.0/users/getAllUsers')
    .get(user.getAllUsers);

app.route('/api/v1.0/users/login')
    .post(user.login);    

app.route('/api/v1.0/users/addUser')
    .post(user.addUser);

};

Маршрут игры соответствует структуре структуры.Я хочу иметь один основной маршрут, который содержит все другие маршруты, а затем просто ссылаться на него в моем server.js.Для этого я попытался выполнить следующие действия в папке основных маршрутов

var mainRoutes = module.exports = function(app) {
require('./userRoutes');
require('./gameRoutes');
};

. В моем файле server.js я попытался вызвать mainRoutes следующим образом

 var routes = require('./api/routes/mainRoutes')
 routes(app);

Однакоэто не работает, и ни один из вызовов API не работает при попытке вызвать их во внешнем интерфейсе.Мой код работает нормально, как будто я объединяю два файла (слияние вручную), это работает, но попытка объединить с помощью экспорта модуля, кажется, не удается?Что я делаю неправильно?Как можно разделить маршруты в двух файлах js и иметь mainRouter, а затем просто сослаться на это в моем server.js?

Также, если это плохая практика или у кого-нибудь есть какие-либо предложения альтернативных методов, пожалуйста, дайте мне знать.

Ответы [ 2 ]

0 голосов
/ 25 мая 2018

Измените свой код на следующий:

var mainRoutes = module.exports = function(app) { require('./userRoutes')(app); require('./gameRoutes')(app); };

0 голосов
/ 25 мая 2018

Это должно работать, если вы измените файл mainRoutes следующим образом:

var mainRoutes = module.exports = function(app) {
  app.use(require('./userRoutes'));
  app.use(require('./gameRoutes'));
};

Также убедитесь, что вы экспортируете маршрутизатор из отдельных маршрутов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...