Express handlebars 呈现为字符串而不是响应
express handlebars render to string instead of response
我目前成功地使用了 express handlebars - 但是我只想用它来更新和呈现页面的一部分 - 一个随时间变化的项目列表,所以我想更新 list 在计时器上。基本上在浏览器上我有以下代码:
$.get( "myUrl").then( result => $("#targetdiv").html( result.html ));
所以在服务器上我对每个页面都做了这样的事情:
app.get("/myUrl", async (req, res) => {res.render( "someTemplateFile");} )
但是,显然这两者不能一起工作 - 我需要这样做:
app.get("/myUrl", async (req, response) =>
{
var renderedHtml = .....someCodeHere...... ("someTemplateFile");
response.send( {html:renderedHtml} );
}
有简单的方法吗?
像这样使用 render API:
var hb = require('express-handlebars').create();
app.get("/myUrl", async (req, response) =>
{
hb.render("some.hbs",{title:"Title",body:"Body"}).then((renderedHtml) => {
response.send( {html:renderedHtml} );
});
});
res.render(
'locale/Order',
/*your html template*/,
dataObject,
function(err,rawHtml) {
console.log(rawHtml)
}
)
我目前成功地使用了 express handlebars - 但是我只想用它来更新和呈现页面的一部分 - 一个随时间变化的项目列表,所以我想更新 list 在计时器上。基本上在浏览器上我有以下代码:
$.get( "myUrl").then( result => $("#targetdiv").html( result.html ));
所以在服务器上我对每个页面都做了这样的事情:
app.get("/myUrl", async (req, res) => {res.render( "someTemplateFile");} )
但是,显然这两者不能一起工作 - 我需要这样做:
app.get("/myUrl", async (req, response) =>
{
var renderedHtml = .....someCodeHere...... ("someTemplateFile");
response.send( {html:renderedHtml} );
}
有简单的方法吗?
像这样使用 render API:
var hb = require('express-handlebars').create();
app.get("/myUrl", async (req, response) =>
{
hb.render("some.hbs",{title:"Title",body:"Body"}).then((renderedHtml) => {
response.send( {html:renderedHtml} );
});
});
res.render(
'locale/Order',
/*your html template*/,
dataObject,
function(err,rawHtml) {
console.log(rawHtml)
}
)