2017-11-01 2 views
0

여러 컬렉션의 첫 번째 개체를 찾는 app.get 요청이 여러 개 있습니다.NodeJS 중첩 된 app.get 작업

이제 다른 2 개의 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

대부분의 유스 케이스의 경우 스마트하게 처리기의 동작을 리팩터링하여 각 경로에서 개별적으로 호출 할 수 있다고 생각합니다. https://www.npmjs.com/package/run-middleware

:이 패턴을 사용할 수없는 경우 어떤 이유

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

, 당신은 잘 작동 실제 경로를 실행하는 데 사용할 수있는 모듈이라는 실행 미들웨어가