NodeJS嵌套app.get操作

时间:2017-11-01 03:29:29

标签: node.js express

我有几个app.get请求,可以找到不同集合中的第一个对象。

现在我必须创建另一个app.get请求,该请求结合了另外两个app.get的结果。

例如:

app.get('/book/', function(req, res){
    res.JSON('book1');
});

app.get('/shelf/', function(req, res){
    res.JSON('shelf36');
});

我想创建另一个结合了两个结果的app.get。有点像:

app.get('/booklocation/' , function(req, res){
     1) var book = execute first app.get
     2) var shelf = execute second app.get
     res.JSON('book' + book + ' is at ' + shelf);
});

这可能吗?如果不在可能需要相同信息的不同资源中反复执行相同的代码,我怎样才能实现此行为?

1 个答案:

答案 0 :(得分:1)

对于大多数用例,我认为聪明的事情是将处理程序的行为重构为自己的函数,然后可以从每个路径单独调用。

function getBook(id){...}

function getShelf(id){...}



app.get('/book/', function(req, res){
     var book1 = getBook()
    res.JSON('book1');
});

 app.get('/shelf/', function(req, res){
     var shelf36 = getShelf()
     res.JSON('shelf36');
 });

app.get('/booklocation/' , function(req, res){
    var book = getBook()
    var shelf = getShelf()
    res.JSON('book' + book + ' is at ' + shelf);
});

如果由于某种原因您无法使用此模式,则可以使用一个名为run middleware的模块来运行运行良好的实际路由:https://www.npmjs.com/package/run-middleware