我在控制器中有這段代碼:
exports.getintroDetails = async (req, res) => {
try {
const details = await IntroModel.find();
return res.render("final", { details , user:req.user });
} catch (error) {
console.log(error.message);
}
};
正如預期的那樣,此代碼使用給定資料呈現 final.ejs 檔案。
但相反,我想顯示我們在使用給定資料渲染 final.ejs 后得到的原始 html。有沒有辦法將原始 html 存盤為字串而不是呈現它?
所以,而不是:
return res.render("final", { details , user:req.user });
我想要這樣的東西:
return res.send( view-source( res.render("final", { details , user:req.user }) ) );
有沒有像view-source()上面描述的那樣的功能?
uj5u.com熱心網友回復:
根據檔案,您可以提供callback將與渲染的html. 當提供回呼時,不會自動做出回應。
exports.getintroDetails = async (req, res) => {
try {
const details = await IntroModel.find();
return res.render("final", { details , user:req.user }, (err, html) => {
console.log('rendered html!', html)
// now, the response has to be made manually.
res.status(200).send(html)
});
} catch (error) {
console.log(error.message);
}
};
也可以將其渲染app.render()為僅用于接收html.
從檔案
將 app.render() 視為生成渲染視圖字串的實用函式。在內部 res.render() 使用 app.render() 來渲染視圖。
app.render('final', function (err, html) {
// ...
})
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/373324.html
標籤:javascript html 节点.js
上一篇:會話存盤沒有給出實際價值
