2
res.render("index.ejs", {});
對於簡單的情況,以上情況都可以。nodejs/express/ejs render()同步
如何讓EJS返回處理的字符串作爲函數的返回值? 使它像這樣的工作:
res.send(ejs.render("index.ejs", {}));
換句話說 - 我想窩/鏈一些渲染()調用,不是異步。
Express似乎並不支持這個本身,或者它呢?
如果不是,那麼我將如何直接通過EJS實現它?
如果你想知道爲什麼我更喜歡「壞」的方式(同步),那麼我有一件事要說:緩存。
無論如何,模板都被緩存了,所以我不介意模板的第一次加載速度會變慢(反正在幾個毫秒內)。
與必須處理對render()的嵌套異步調用相比,此時間分數的單個延遲的代價是沒有代價的。
我明確要求它是同步的。我意識到這些影響。請理解,在我的情況下,我需要渲染()一個將渲染()另一個文件的文件。所以它嵌套在不同的文件中,而不是你的解決方案所建議的功能。不過謝謝。 – Poni
如果你真的想同步,那麼你需要編寫你自己的渲染功能。 'express'中的渲染函數需要使用回調函數。 – Bill
嘿嘿我知道這些了!希望有人會想出一個解決方案。無論如何,已經連線我自己的功能。 – Poni