2013-08-21 1 views
0

나는 활성 고속 루트가 있습니다 - 이미 템플리트로 정의되었습니다.Active ExpressJS 라우트의보기 변경 - Node.JS

app.get('/route', function route(req, res) { 
    db.get('db_ID', function compileAndRender(err, doc) { 
     var stream = mu.compileAndRender('theme-file.extension', doc) 
     stream.pipe(res) 
    }) 

})

는 지금, 나는 응용 프로그램에서 나중에 그 경로의 뷰 파일을 변경할 수 있어야합니다. 어떻게하면 좋을까요?

기본적으로 '/ route'에 새로운 'theme-file.extension'이 있어야한다는 것을 표현하는 방법은 무엇입니까?

답변

0

좋아요, 그래서 저는이 문제에 대한 다른 생각을 찾아야했습니다. 수동으로 각 경로를 설정하는 대신 동적으로 매개 변수 변수를 사용했습니다.

코드는 다음과 같습니다

//Set up dynamic routes for all pages 
app.get('/:page_name', function(req, res) { 

    db.get('pages_routes', function(err, doc) { 
     var pure_routes = doc.pure_routes, 
      requested_page = req.params.page_name, 
      page_info = _.findWhere(pure_routes, { "url" : requested_page }) 

     if (page_info !== undefined) { 
      db.get(page_info.id, function compileAndRender(err, doc) { 
       var stream = mu.compileAndRender(page_info.theme, doc) 
       stream.pipe(res) 
      }) 
     } else { 
      res.redirect('/index.html') 
     } 
    }) 
}) 

이 내 의견에 더 간결하고 쉽게 많은 작업을하는 코드를 보였습니다. 더 많은 코드를보고 싶다면 here 프로젝트를 볼 수 있습니다 (향상시킬 수있는 것을 볼 수 있다면 기여하십시오). 희망이 밖으로 다른 사람을 도와주세요!