2017-12-22 19 views
0

내 NodeJS-express 응용 프로그램에서 템플릿 용 엔진 핸들을 사용하고 있습니다. 동적 데이터를 통한 라우팅이 가능합니다. 내 응용 프로그램을위한 단일 레이아웃 파일이 있습니다. 어떻게 데이터를 템플릿 파일에 동적으로 전달할 수 있습니까?익스프레스 핸들 바의 레이아웃 파일 (부분)에 동적 컨텐트를 전달하려면 어떻게해야합니까?

편집 :

내 템플릿 파일은 다음과 같습니다.

<!DOCTYPE html> 
 
<html> 
 
    <head> 
 
    </head> 
 
    <body> 
 
    <nav> 
 
     <div> 
 
     <ul class="navbar-nav"> 
 
      <li class="nav-item active"> 
 
      <a>Home</a> 
 
      </li> 
 
      <li class="nav-item"> 
 
      <a>about</a> 
 
      </li> 
 
      <li class="nav-item"> 
 
      <a>contact</a> 
 
      </li> 
 
     </ul> 
 
     </div> 
 
    </nav> 
 
    {{{body}}} 
 
    </body> 
 
</html>

은 내가 탐색 항목 (홈, 약, 연락처)가 필요 API 호출에서 모두. 하드 코딩되지 않았습니다.
<!DOCTYPE html> 
<html> 
    <head> 
    </head> 
    <body> 
    <nav> 
     {{{navStuff}}} 
    </nav> 
    {{{body}}} 
    </body> 
</html> 

그리고 당신의 익스프레스 경로에서

, 당신은이 작업을 수행 할 수 있습니다 :

+2

일부 코드를 제공하고 코드에서 문제를 지적 할 수 있습니까? – chirag

+0

내 질문을 업데이트했습니다. 제발 좀 봐. 이 시간을 찾아 주셔서 감사합니다. – Bharath

답변

0

나는 당신이 당신의 핸들에서이 작업을 수행 할 필요가 있다고 생각합니다. (나는 그것의 간단한 라우팅을 가정 당신은 ReactRouter V4에 대한 적응할 수)

당신이 페이지를 기반으로 메뉴 항목을 가져 오기 위해, 데이타베이스 통화를 할 경우
app.get('/home', function(req, res, next){ 
return res.render('app',{ 
    body: toRender, 
    navStuff: menu 
    }) 
}); 

마찬가지로, 당신은이에 채택 할 수있다 :

app.get('/home', function(req, res, next){ 
getMenuFromDb(pathName).then(function(menu){ 
    return res.render('app',{ 
     body: toRender, 
     navStuff: menu 
     }) 
    }); 
}) 

}