У меня есть несколько маршрутов. Как я могу получить данные с маршрута пользователя (метод GET), вызвав его в методе GET маршрута группы? Каков наилучший способ сделать это?Экспресс-вызов метода GET в пределах маршрута от другого маршрута
My app.js выглядит следующим образом:
var express = require('express');
var routes = require('./routes/index');
var users = require('./routes/users');
var groups = require('./routes/groups');
var app = express();
app.use('/', routes);
app.use('/users', users);
app.use('/groups', groups);
module.exports = app;
app.listen(3000);
Тогда у меня есть еще один файл маршруты/users.js:
var express = require('express');
var router = express.Router();
/* GET users listing. */
router.get('/', function(req, res, next) {
res.send('GET ON THE users!');
});
module.exports = router;
И соседний г маршрут маршруты/groups.js:
var express = require('express');
var router = express.Router();
var otherRouter = require('./users')
/* GET groups listing. */
router.get('/', function(req, res, next) {
// call the get on users and retrieve all data from that request
res.send('GET for the groups');
});
module.exports = router;
Спасибо! :)
Просто возьмите код, определяющий, что ответ данных для маршрута '/ users', и поместите его в отдельную функцию. Затем вызовите эту функцию из обоих мест, которые вы хотите использовать. Если это асинхронно, тогда функция возвращает обещание, которое разрешается с данными. Затем вы можете использовать этот асинхронный интерфейс в обоих местах, в которых вы нуждаетесь. – jfriend00
Вы должны были разместить его как фактический ответ. Я думал, что могу ссылаться на существующие маршруты, чтобы получить метод как-то. Спасибо за ваш ответ! :) – asuciu
Я работаю над ответом на этот же вопрос, так как «вы не должны этого делать» ответ был недостаточно хорош для меня :) Вызов приложения напрямую (похоже на ответ «runMiddleware»/пример он, кроме как с mocks от https://www.npmjs.com/package/node-mocks-http), я чувствую, что создаст приятную возможность «внутреннего запуска». То есть, «app (mock_req, mock_res)», а затем исследует ответ. – ryanm