从REST API中调用REST Api(Node.js)

这可能是一个愚蠢的问题,但我是相当新的Node / REST,并找不到答案。

假设有一个请求A要求对象A('.. /学生/:学生ID')。 还有另一个请求B要求对象B('… /讲座/:讲座ID')。 现在对象B将包含关于讲座的一些信息,而且包含参加讲座的学生。

现在我可以想到组装对象B的三种方法:

1:从Resquest B的处理中多次呼叫请求A.

2:复制并粘贴来自请求A处理的代码

3:创build一个访问数据库并将其附加到所有请求查询的对象:

var dbAccessObject = require('./dbAccess'); app.use(function (req,res,next){ req.dbAccessObject = dbAccessObject; next(); )}; 

你会select哪个选项? 还是有另一种更好的方法?

你不需要转发请求给自己。 你可以通过很好的结构来处理你自己的代码。 假设您有两条API路线:

 /a: runA(); /b: runB(); 

并且你想/ c返回两个/ a和/ b的结果,就好像两个调用一样。 如果你已经把你的逻辑分解成runA()runB() ,那么/ c就变成了runC()

 return { a: runA(), b: runB() } 

编写同步代码时这很简单,但是asynchronous代码有点难度,因为runB()可能在runA()之前返回。 你需要知道什么时候他们都完成了。 我build议使用async作为快速胜利 : http : //www.informit.com/articles/article.aspx? async =2