当我的网站上发出GET请求时,我正在尝试呈现存储在另一台服务器上的模板。基本上我的应用程序将向此服务器发出请求,响应将包含我想要使用的模板。服务器的响应是一个字符串形式的灰尘模板。
呈现模板的最佳方法是什么?
router.get('/', function(req, res) {
var options = {
host: myHost,
path: myPath,
port: myPort};
var templateReq = http.get(options, function(response) {
var templateStr = '';
response.on('data', function(chunk) {
templateStr += chunk;
});
response.on('end', function() {
var dustParams = myDustParams;
res.render(templateStr, dustParams); //THIS DOES NOT WORK
});
});
});
我知道渲染会在'views'文件夹中查找以搜索模板。
另外,我知道您可以使用“发送”直接将HTML发送到响应,但通过这样做,我无法包含灰尘参数。
答案 0 :(得分:3)
您可以使用:
res.send(templateStr);
关于让灰尘填充模板中的params,你必须在使用res.send
之前编译并渲染它
答案 1 :(得分:0)
我写了一个npm module来做到这一点,通过扩展快速框架来从视图模型中读取模板URL以及在哪里注入视图内容的css选择器。
您正常调用res.render但是传递模板网址和选择器而不是布局
res.render('view-name', {
template: 'https://courseof.life/johndoherty', // external url
templateSelector: '#promo-banner' // element within layout to inject view
});
它会在再次调用以获取下一个版本之前将模板缓存30分钟。