여기에 질문을 복제하지 않으려 고하지만이 특정 문제를 해결 한 내용이 보이지 않았습니다.Node.js 및 Express - 전화 한 번으로 디렉토리의 렌더링 페이지에 대해
나는 독특한 콘텐츠 나는 폴더에 저장 블록의 무리 작성하여 일부 페이지를 구성하고있어 -이 같은 것들을 :
h4 Content Example
p.description.
Lorem ipsum dolor sample text etc etc
을 pages\contentBlocks\Example\contentExample.jade
, 말에. 이 같은
mixin contentBlock(title)
.content-block(id=title.toLowerCase())
h3 #{title}
if block
.content
block
나는 더 큰 페이지 (pages\portfolio.jade
) 내에서이 믹스 인을 호출 :
이 내용 블록
이처럼 보이는 믹스 인 (pages\mixins.jade
)에 추가됩니다
.subsection
//- Expects a list of objects of the format { title, html }
each val in pageBlocks
+contentBlock(val.title)
!= val.html
(배경 이미지와 같이 현재 위치에서 서식을 지정하기 위해 mixin으로 전달할 수있는 다른 변수를 사용하여 나중에이를 향상시키는 것입니다.
Express의 기능을 사용하여 한 번의 호출로 디렉토리의 모든 페이지를 자동으로 렌더링하고 싶습니다. (index.js
)과 같이 :. 그러나
var pageBlocks = [];
res.render('pages/contentBlocks/Example/*', function (err, html) {
if (err) throw err;
pageBlocks.push({ html: html });
});
, 나는 또한 내가에 넣어 블록의 class
를 설정하는 예를 들어, 파일의 제목을 참조 할 수 있도록하고 싶습니다 이상적으로, 그것은 것 다음과 같이 표시하십시오.
res.render('pages/contentBlocks/Example/*', function (err, html) {
if (err) throw err;
pageBlocks.push({ title:functionToGetFileName(), html: html });
});
수동으로 해당 디렉토리의 파일을 반복하지 않고 수행 할 수있는 방법이 있습니까?
또는이 방법은 불필요하게 복잡하게 보입니다 (mixins, includes, extends 및 partials가있을 경우 추가 렌더링 호출없이이 작업을 수행 할 수 있어야한다는 느낌이 들었습니다). 이?
편집 : 주변을 둘러보고 코드 테스트를 한 결과 이제는 확신이 없습니다. Express는 암시 적으로 디렉토리의 모든 파일을 렌더링합니까? this question을 기반으로 할 수 있다고 생각했지만 잘못 읽었을 수 있습니다. res.render('path/to/directory/', callback)
의 형식이 작동하지 않는 것 - 나는 다음과 같은 오류 얻을 : 나는 다음과 같은 패턴을 사용하고 임시 해결책에 대한
Error: Failed to lookup view "path/to/directory/" in views directory "/path/to/app/views"