2012-11-13 2 views

답변

26

는 다음을 시도 할 수 있습니다 : template.jade이 템플릿의 경로입니다

var jade = require('jade'), 
    fs = require('fs'); 

fs.readFile('template.jade', 'utf8', function (err, data) { 
    if (err) throw err; 
    console.log(data); 
    var fn = jade.compile(data); 
    var html = fn({name:'Oleg'}); 
    console.log(html); 
}); 

. 그리고 이것은 다음과 같습니다 :

!!! 
html 
    head 
    title= 'Hello world' 
    body 
    p Hello #{name}! 

따라서 모델을 fn() 함수의 입력으로 전달하면이 출력이 html이됩니다.

<!DOCTYPE html><html><head><title>Hello world</title></head><body><p>Hello Oleg!</p></body></html> 
+2

가 그리고 당신 https://github.com/andris9/Nodemailer이 이메일을 –

+0

감사를 보내도록 권장, 모든 것이 완벽하게 작동 –

+0

당신은 [app.render] (http://expressjs.com/api 사용할 수 있습니다. html # app.render)를 사용하여 템플릿을 문자열로 렌더링합니다. [this] (http://stackoverflow.com/questions/15403791/in-express-js-app-render-vs-res-render-whats -the-difference # answer-15404507) 더 최근 답변. –

12

또한 당신은

exports.test1 = function(req, res){ 
    res.render('test1', { title: 'test1' }, function(err, body) { 
    console.log(body); 
    }); 

    res.send('wooo'); 
}; 

test1.jade

div 
    = title 
p hello world! 
1

답변 (예 : 표현) 콜백을 렌더링에서 문자열을 잡을 수 옥 템플릿을로드하고 그것을 컴파일하기위한 모든 작업 지역 주민을 사용하는 HTML. 그러나 HTML 전자 메일을 보내는 경우 대부분의 클라이언트가 모든 CSS 클래스를 제거한다는 사실을 알아야합니다. Juice (또는 비슷한 코드)을 사용하여 모든 CSS 클래스를 인라인으로 적용하십시오.

6

fs.readFile()으로 템플릿을 여는 것은 더 이상 필요하지 않습니다. Jade API에는 파일에서 직접 컴파일하는 compileFile() 메서드가 포함되어 있습니다.

var jade = require("jade"); 

var locals = {name: "Linus"}, 
    render = jade.compileFile('template.jade'), 
    html = render(locals); 

옥 API는 직접도 간단하고, 주어진 파일에서 HTML 문자열을 반환 renderFile() 방법을 포함한다.

var jade = require("jade"); 

var locals = {name: "Linus"}, 
    html = jade.renderFile('template.jade', locals); 
+1

수정하십시오. 다음은 오류를 확인하는 방법에 관한 관련 질문입니다. http://stackoverflow.com/questions/7283896/how-can-i-catch-a-rendering-error-missing-template-in-node-js-using- express-js/34709515 # 34709515 – Wtower

+0

옥 버전은 그게 뭐죠? 내 renderFile (v1.2.0)은 3 개의 인수를 요구합니다 – akcasoy

+0

@akcasoy 다음은 최신 문서들입니다 : http://jade-lang.com/api/. 'renderFile()'설명은 맨 아래에 있고 2 개의 인수가 필요하다는 것을 보여줍니다. – Nocturno

관련 문제