2012-07-02 2 views
1

저는 노드를 처음 사용하여 jade를 템플릿 언어로 사용하는 앱의 프런트 엔드를 표현하고 작업하고 있습니다. 내 머리를 감싸는 데 어려움을 겪고 있으며, 여기에 철저한 인터넷 검색과 검색을하는 것이 답을 파헤 치지 않은 무언가가 있습니다. coffeescript 및 express.js를 사용하여 jade에 변수를 전달하는 데 문제가 있습니다.

내 응용 프로그램 구조 :

app.get '/', (req, res) -> 
     res.render 'landing', 
     testvar: 'a test string' 

을 그리고 내가 할 수있는 : 내가 할 경우

myapp/ 
    | - app.coffee 
    | - config.coffee 
    | - assets/ 
      | - scripts 
        my coffeescript files (test.coffee)   
      | - stylesheets 
        my sass files 
    | - public/ 
      | - images 
      | - scripts 
        my coffeescript compiled as js (test.js) 
      | - css 
        my sass files compiled as css 
    | - views/ 
      | - jade files, layouts, partials etc 

은 현재 내가 app.coffee에서 그들을 정의하는 경우, 예를 들어, 옥에 변수를 통과 할 수 있어요 넣어 : landing.jade 속으로

p #{testvar} 

그것은 렌더링과 같은 :

<p>a test string</p> 

모두 훌륭합니다. 하지만 자산에있는 다른 coffeescript 파일 중 하나에서 변수 또는 개체를 정의하고 비취로 렌더링하도록하려면 어떻게해야합니까? 이 문제를 해결하는 가장 좋은 방법은 무엇입니까? 이것이 가능한가? 나는 익스프레스 폭로를 들여다 보았다. 그러나 이것이 내가 찾고있는 것이 아니거나 정확하게 이해하지 못하고있는 것 같다.

내가 피하려고하는 것은 내 app.coffee 파일을 오브젝트/변수로 더럽 히고 있습니다. 차라리 내 자산 커피 파일에 정의한 다음 앱으로 경로를 정의 할 때 포함 시키십시오. .도망. 그것은 컴파일 된 커피 파일이 고전 스크립트 태그를 사용하여 페이지 상단에 내 layout.jade 파일에 포함되어 있음을 언급 할 가치 :

script(src='scripts/test.js') 
+0

같은 문제. myfile.cofeee에 변수를 추가하려고합니다. 해결책을 찾아 냈나요? – Alexis

답변

0
app.locals.use (req, res) -> 
    res.locals.script = (s) -> 
    "<script type=\"text/javascript\" src=\"#{s}\"></script>" 
+1

이 답변을 이해할 수 없습니다. 어떻게 도움이됩니까? – satyrsynth