res.render("index.ejs", {});
上記は、単純なケースでは問題ありません。
EJS が処理された文字列を関数の戻り値として返すようにするにはどうすればよいですか? 次のように機能させます。
res.send(ejs.render("index.ejs", {}));
言い換えれば、非同期ではなく、いくつかの render() 呼び出しをネスト/チェーンしたいのです。
Express はこれをネイティブにサポートしていないようですが、そうですか?
そうでない場合、どうすれば EJS を介して直接それを達成できますか?
なぜ私が「悪い」方法 (同期) を好むのか疑問に思われる場合は、1 つ言いたいことがあります。それは、キャッシュです。
とにかくテンプレートはキャッシュされているので、テンプレートの最初の読み込みが遅くなっても気にしません (とにかく数ミリ秒で)。
render() へのネストされた非同期呼び出しを処理する必要がある場合と比較して、時間の一部の 1 つの遅延のこのコストはコストではありません。