私はノードとエクスプレスを初めて使用し、テンプレート言語としてジェイドを使用するアプリのフロントエンドに取り組んでいます。私はまだ頭を悩ませていることがあり、ここで徹底的にグーグル検索して検索しても答えが得られませんでした.
私のアプリの構造:
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 で定義すると、変数を jade に渡すことができます。たとえば、次のようにします。
app.get '/', (req, res) ->
res.render 'landing',
testvar: 'a test string'
それから私は置くことができます:
p #{testvar}
Landing.jade に入れると、次のようにレンダリングされます。
<p>a test string</p>
それはすべて順調です。しかし、アセットにある別の coffeescript ファイルの 1 つで変数またはオブジェクトを定義し、それを jade でレンダリングしたい場合はどうすればよいでしょうか? これについて最善の方法は何ですか?これは可能ですか?私はエクスプレスエクスポーズを調べましたが、これは私が探しているものではないようです。または、正しく理解していない可能性があります。
私が避けようとしているのは、app.coffee ファイルを一連のオブジェクト/変数で汚すことです。アセットのコーヒー ファイルでそれらを定義し、app.get でルートを定義するときにそれらを含めたいと思います。コンパイルされたコーヒー ファイルは、クラシック スクリプト タグを使用して、ページの上部にある私の layout.jade ファイルに含まれていることに注意してください。
script(src='scripts/test.js')