nodejs express повторно использовать метод get route в другом файле

1

В файле groups.js у меня есть следующий маршрут:

router.get('/status', function(req, res, next) {
    // some data
    return res.status(200).json(someData);
}
module.exports = router;

и в файле users.js у меня есть следующий маршрут:

router.get('/create', function(req, res, next) {

    // re-use the groups route '/status' here and get 'someData'
    // do some stuff with 'someData'
    // do more bunch of data

    return res.status(200).json(bunchOfData);
}

как я могу использовать маршрут получения status из групп файлов в файле пользователей?

  • 3
    Извлечь общую функциональность и создать общую служебную функцию, импортировать ее при необходимости и вызывать по обоим маршрутам?
  • 0
    @ Li357, как мне экспортировать его, если я уже экспортирую роутер и он используется в приложении ... как не повлиять на настройку curret?
Показать ещё 1 комментарий
Теги:
express

2 ответа

1
Лучший ответ

Вы просто помещаете его в внешний модуль, который затем импортируете, используя require:

Route1:

router.get('/status', function(req, res, next) {
    // some data
    return res.status(200).json(someData);
}
module.exports = router;

route2:

router.get('/create', function(req, res, next) {

    // re-use the groups route '/status' here and get 'someData'
    // do some stuff with 'someData'
    // do more bunch of data

    return res.status(200).json(bunchOfData);
}

Utility.js

let status;
// status = whatever you need it to be
module.exports = status;

Теперь импортируйте утилиту как в route1, так и в route2, а затем вы получите доступ к одной и той же переменной статуса в разных модулях.

1

Попробуйте это, используйте npm request module чтобы попасть в свой собственный маршрут /api: Установить по команде npm install request --save

Требовать: const request = require('request');

router.get('/create', function(req, res, next) {

        // re-use the groups route '/status' here and get 'someData'
        // do some stuff with 'someData'
        // do more bunch of data

        //for local use: http://localhost:<port of server>/status?<query string>            
        request('http://<host>:<port>/status?<query string>', function (error, response, body) {

            console.log('error:', error); // Print the error if one occurred
            console.log('statusCode:', response && response.statusCode); // Print the response status code if a response was received
            console.log('body:', body); // Print the HTML for the Google homepage.

             return res.status(200).json(body);
        });
    }

Ещё вопросы

Сообщество Overcoder
Наверх
Меню