我有几个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);
});
这可能吗?如果不在可能需要相同信息的不同资源中反复执行相同的代码,我怎样才能实现此行为?
答案 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