我可以在不向用户使用 res.render / return 信息的情况下以 express 形式呈现 html 吗?
Can I render html in express without using res.render / return info to the user?
我想以与呈现大多数其他页面相同的方式呈现 HTML,使用 res.render(),它被设置为使用把手。
但我不想只 return HTML,我想将 HTML 与其他一些信息一起放入一个对象中,然后 return那个。
我知道我可以加载一个新的 handlebars 实例,但我不想这样做,因为我需要所有的助手和部分。有没有一种方法可以使用 res.render 使用的相同车把实例进行渲染,但 return 只是 HTML?
我想做这样的事情:
router.get('/list', function(req, res, next) {
Users((err, users)=>{
if (err) console.log(err);
var html = res.render('user-list', {
layout: false,
users: users,
});
res.json({
html: html,
otherInfo: otherInfo
});
});
});'
但显然不能这样做,因为 res.render 将开始向用户发送 HTML。
有什么建议吗?
编辑:想通了,就是不能接受我自己的回答
使用req.app访问express实例,它有方法render,它将return HTML。该函数是异步的,因此您需要提供回调,而不是将其设置为变量。
我想以与呈现大多数其他页面相同的方式呈现 HTML,使用 res.render(),它被设置为使用把手。
但我不想只 return HTML,我想将 HTML 与其他一些信息一起放入一个对象中,然后 return那个。
我知道我可以加载一个新的 handlebars 实例,但我不想这样做,因为我需要所有的助手和部分。有没有一种方法可以使用 res.render 使用的相同车把实例进行渲染,但 return 只是 HTML?
我想做这样的事情:
router.get('/list', function(req, res, next) {
Users((err, users)=>{
if (err) console.log(err);
var html = res.render('user-list', {
layout: false,
users: users,
});
res.json({
html: html,
otherInfo: otherInfo
});
});
});'
但显然不能这样做,因为 res.render 将开始向用户发送 HTML。
有什么建议吗?
编辑:想通了,就是不能接受我自己的回答
使用req.app访问express实例,它有方法render,它将return HTML。该函数是异步的,因此您需要提供回调,而不是将其设置为变量。