2014-08-27 5 views
2

Когда на моем сайте выполняется запрос GET, я пытаюсь отобразить шаблоны, которые хранятся на другом сервере. По сути мое приложение сделает запрос на этот сервер, и ответ будет содержать шаблон, который я хотел бы использовать. Ответ сервера - это шаблон пыли в виде строки.Express Render Template from String

Каков наилучший способ визуализации шаблона?

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-сообщение в ответ с помощью «Отправить», но, делая это, я не могу включить параметры пыли.

ответ

3

Вы можете использовать:

res.send(templateStr); 

Что касается имеющей пыли заполнения Params в шаблоне, вы должны скомпилировать и сделать ее перед использованием res.send

+1

Спасибо! Я забыл о способности Dust скомпилировать и отобразить шаблоны вручную. Я рассмотрю это. – erik

0

Я написал npm module сделать это посредством расширения express Framework для чтения шаблона url из модели просмотра вместе с селектором css, куда вводить содержимое представления.

Вы называете res.render в обычном режиме, но передать шаблон URL и селектор, а не макет

res.render('view-name', { 
    template: 'https://courseof.life/johndoherty', // external url 
    templateSelector: '#promo-banner' // element within layout to inject view 
}); 

Это кэширует шаблон в течение 30 минут, прежде чем сделать еще один звонок, чтобы выбрать следующую версию.