express 의 app 대상
5431 단어 nodejs
일반 설정:
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);
이렇게 하면 우 리 는 사용 할 수 있다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Node.js를 AWS서버에서 사용하는 실습간단한 예제와 함께 AWS에서 Node.js를사용하는 법을 배워보도록 하겠다. 해당 github에 있는 레포지토리로 사용을 할 것이다. 3000번 포트로 Listen되는 예제이고 간단히 GET, POST, DELET...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.