express 의 app 대상

5431 단어 nodejs
app.engine
일반 설정:
views,         ,  : app.set('views', './views')
view engine,     ,  : app.set('view engine', 'ejs')

위 와 같이 ejb 의 쓰기 방법 에 따라 우리 의 페이지 를 과장 할 수 있 지만 징 그 럽 습 니 다. 적어도 저 는 개인 적 으로 html 를 쓰 는 것 이 습관 이 되 었 다 고 생각 합 니 다. subtime 은 문법 하 이 라이트 와 emmet 바로 쓰기 도 제공 합 니 다. ejb 의 쓰기 방법 을 사용 하면 색깔 이 없고 빠 르 지 않 습 니 다.아래 를 개조 하여,
app.set('views','./views');
app.set('view engine','html');
app.engine('.html',require('ejs').__express);

처음에는 이렇게 쓰 면 된다 는 것 을 알 았 지만 이해 가 안 되 는 느낌 이 들 었 습 니 다. 매번 스스로 쓸 수 없 었 고 생각 을 바 꾸 어 이 해 했 습 니 다. 우 리 는 템 플 릿 엔진 을 탈곡기 로 이 해 했 습 니 다. 들 어간 것 은 밀 이 고 나 온 것 은 밀가루 입 니 다. 시장 에 탈곡기 가 많 습 니 다. 우 리 는 어떻게 구분 할 까요? 자 연 스 럽 게 이름 이 생각 났 습 니 다. 이름 이 무엇 일 까요?그 가 렌 더 링 한 접미사 이름 파일 과 일치 하기 위해 html 파일 을 렌 더 링 하고 싶 습 니 다. 그러면 저 는 이 엔진 의 이름 을 html 이 라 고 부 르 고 app.set('views engine') 에서 지정 하 겠 습 니 다.
그러면 문제 가 생 겼 는데, 너 는 밀가루 반죽 기 이름 을 바 꾸 면 네가 직접 만 날 수 있 을 것 이 라 고 생각 하 니?분명히 안 됩 니 다. 우 리 는 우리 의 타면기 (엔진) 를 계속 개조 해 야 합 니 다. app.engine('.html',callback()); 를 통 해 이 엔진 은 도대체 안에서 어떤 일 을 하고 이 전환 기능 을 실현 하 였 습 니까?그리고 여기 서 당신 이 과장 한 것 은 '.html' 파일 입 니 다. 나 온 것 도 그 렇 고 템 플 릿 엔진 은 무엇 을 해 야 합 니까?우선 템 플 릿 엔진 이 템 플 릿 을 렌 더 링 할 때 무엇 을 했 는 지 이해 하고 express 홈 페이지 의 예 에서 따 야 합 니 다.
var fs = require('fs'); //         fs   
app.engine('ntl', function (filePath, options, callback) { //       
  fs.readFile(filePath, function (err, content) {
    if (err) return callback(new Error(err));
    //                
    var rendered = content.toString().replace('#title#', ''+ options.title +'')
    .replace('#message#', '

'

+ options.message +''); return callback(null, rendered); }) }); app.set('views', './views'); // app.set('view engine', 'ntl'); //

여기 서 보면 훨씬 뚜렷 합 니 다. 템 플 릿 엔진 의 대체적인 역할 은 렌 더 링 할 파일 을 읽 고 들 어 오 는 배경 변 수 를 우리 가 원 하 는 파일 로 렌 더 링 하 는 것 입 니 다. 여기 서 핵심 적 인 것 은 바로 우리 배경 에서 얻 은 내용 을 템 플 릿 과 결합 하여 html 파일 로 렌 더 링 하고 고객 에 게 전달 하 는 것 입 니 다. 내용 은 변 수 를 통 해 해결 되 고 html 라벨 은 렌 더 링 엔진 의 특수 한 형식 문법 으로 전환 되 는 것 입 니 다.그러나 만약 에 우리 가 원래 html 라벨 이 라면 그 가 지정 한 문법 에 부합 되 지 않 더 라 도 괜 찮 습 니 다. 왜냐하면 그 는 원래 그 렇 기 때 문 입 니 다. (fs. readfile) 렌 더 링 할 파일 (특수 접미사 명. html. ejs. jade) 을 읽 고 우리 가 원 하 는 (html) 로 렌 더 링 하 는 과정 은 callback(filePath, options, callback) 이것 에 달 려 있 습 니 다. express 를 호 환 하 는 엔진 은 express 를 통 해require('ejs').__express 이 반전 함 수 를 되 돌려 주면 우리 의 요 구 를 실현 할 수 있 습 니 다. 이것 은 express 홈 페이지 의 다른 표기 법 도 설명 합 니 다.
 app.engine('html', require('ejs').renderFile);
  
 var engines = require('consolidate');
 app.engine('haml', engines.haml);
 app.engine('html', engines.hogan);

여기 서 나의 원래 쓰 는 방법 을 다시 복습 해라.
app.set('views','./views');
app.set('view engine','html');
app.engine('.html',require('ejs').__express);

이렇게 하면 우 리 는 사용 할 수 있다.

좋은 웹페이지 즐겨찾기