0

Node.js + Express + Jade を長い間使用しています。ノード 0.8.12 にアップグレードしてから、実稼働サーバーで render( ... ) コマンドがタイムアウトするだけです。

この例では、「1」はログに出力されますが、「2」は出力されず、ページがタイムアウトします。もちろん、views/test.jade という名前のファイルはちゃんとあります。そして、これは私のテストサーバーでも同じコードでうまく動作します...

console.log('1');
res.render('test');
console.log('2');

そのため、Node.js を 0.6.18 (以前に使用していたもの) にダウングレードすると、コードは再び正常に動作します。しかし、私はより新しいノードバージョンが必要です...私が考えることができる1つの大きな違いは、0.6.18がYUM経由でCentOSにインストールされたということですが、適切なパッケージが見つからなかったため、v0.8.12を自分で作成する必要がありました.

これが私が試したことです:

  • Express (@3.0.0rc5) と jade (@0.26.3) のアップグレード
  • render() 関数でコールバックを使用する (呼び出されることはありません)
  • app.set('views', absolute_path); を使用して、views/ ディレクトリを明示的に設定します。
  • エラーを取得しようとして意図的に無効なテンプレート名を使用する。それでも、何もありません (コールバックが起動されず、実行されません)
  • 泣いている

アイデア?

4

1 に答える 1

1

jade正しくインストールされていることを確認してください。レンダリング呼び出しがタイムアウトしている場合は、処理していないエラーがスローされている可能性があります。次のようにスローされたエラーを確認できます。

try {
   res.render('test');
}
catch (e) {
   console.log(e);
}

あまり依存しないので、モジュールが正しくインストールされていないrenderと思います。フォルダに表示されてjadeいることを確認してください。そうでない場合は、再インストールしてみてください。jadenode_modules\express

npm install express
于 2012-10-13T19:13:34.877 に答える