从另一条路线到一条路线的快速调用GET方法 [英] Express call GET method within route from another route

查看:103
本文介绍了从另一条路线到一条路线的快速调用GET方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有多条路线.通过在组路由的GET方法中调用数据,如何从用户的路由(GET方法)中获取数据?最好的方法是什么?

I have multiple routes. How can I get the data from the user's route (GET method), by calling it within the GET method of the group's route? What is the best way of doing this?

我的app.js看起来像这样:

My app.js looks like this:

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

然后我有另一个文件route/users.js:

Then I have another file routes/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;

另一条路线:routes/groups.js:

And another route routes/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;

谢谢! :)

推荐答案

您不应为此使用路由.只需调用负责从GET组路由中检索用户的函数,然后使用该数据即可完成您需要的工作.您提出的方法要昂贵得多,因为您将必须进行http调用.

You shouldn't use routing for that. Just call the function responsible for retrieving the users from the GET groups route and do what you need with that data. The way you propose is much more expensive because you will have to make a http call.

为简单起见,我假设您的逻辑是同步的,并且数据存储在data/users.js中:

For simplicity I'm assuming that your logic is synchronous and data stored in data/users.js:

var data = [{id:1, name: "one"},{id: 2, name: "two"}];
module.exports = function(){
  return data;
};

在routes/users.js中:

in routes/users.js:

var express = require('express');
var router = express.Router();
var getUsers = required('./../data/users');

router.get('/', function(req, res, next) {
  res.send(getUsers());
});

在routes/groups.js中:

in routes/groups.js:

var express = require('express');
var router = express.Router();
var otherRouter = require('./users')
var getUsers = require('./.../data/users');

router.get('/', function(req, res, next) {
  var users = getUsers();
  //do some logic to get groups based on users variable value
  res.send('GET for the groups');
});

这篇关于从另一条路线到一条路线的快速调用GET方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆