0

ブログをやり直したいのですが、[function]console.log するたびに以下のコードが戻ってくるようです。はい、それは正しいパスです。ジェイドを更新する前は機能していましたが、もう機能しません。

post.stub = jade.compile(
        fs.readFileSync(__dirname + '/blog/' + p + '/stub.jade')
)

console.log(post.stub)ではなく、jade ファイルに存在する :markdown を返すようにするにはどうすればよい[function]ですか?

前もって感謝します。

更新された回答:

 post.stub = jade.compile(
            fs.readFileSync(__dirname + '/blog/' + p + '/stub.jade')
        )({})
4

1 に答える 1

1

これが、jade およびすべての同様のテンプレート システムが機能する方法です。2 つのステップがあります。

  1. 翡翠のテキスト テンプレートを関数に変換します (テンプレートごとに 1 回だけ行う必要があります)。
  2. 一連のコンテキスト データを取得し、コンパイルされたテンプレート関数を介して実行し、レンダリングされた文字列を HTML として返します (一意のコンテキスト データがあるたびに発生します)。

したがって、テンプレートがコンテキスト データを必要としない場合は、空のオブジェクトで呼び出すだけです (おそらく null/undefined も問題なく機能します)。

post.stub = jade.compile(
        fs.readFileSync(__dirname + '/blog/' + p + '/stub.jade')
)({})

jade javascript API docsも参照してください。

于 2012-11-22T05:30:00.453 に答える