2016-12-30 7 views
0

템플릿 /라는 콧수염 템플릿 디렉토리를 모두 얻어 hogan으로 컴파일해야했습니다. 그들의 이름은 가정 이론적으로NodeJS, 일괄 처리 파일, 파일 당 과도한 객체/함수 작성의 대안?

,

file1.mustache file2.mustache file3.mustache

그런 다음 우리는 각각의보기를 얻고, 출력 디렉토리라는 이름의 빌드 결과를 저장 /. 결과 이름이 될 것 이론적으로

,

name.file1 name.file2 name.file3

분명히 비동기가 바람직하지만 난 당신이 효율적으로이 작업을 수행 할 것입니다 방법에 가장 관심

? 유일한 방법은 파일 개체와 익명의 기능을 수행하는 것만 믿을 수 없습니다.

+0

템플릿을 보관하고 각 파일을 처리하는 디렉토리에 모든 파일을 나열하지 않는 이유는 무엇입니까? 나는 당신이 명백한 해결책을 넘어서 실제로 요구하고있는 것이 명확하지 않다고 생각합니다. 게다가 "파일 당 과도한 객체/함수 작성"이 의미하는 것은 무엇입니까? 아마도 당신이 말하는 것에 대한 몇 가지 예를 보여줄 것입니다. – jfriend00

답변

2

당신은 쉽게 병렬로 파일을 읽고, 프로세스 및 쓰기 Promise.all와 함께 fs-promise 모듈을 사용할 수 있습니다

const fsp = require('fs-promise'); 

function processTemplate(filename) { 
    return fsp.readFile(filename, 'utf8') 
    .then((template) => hogan.compile(template)) 
    .then((compiledTemplate) => fsp.writeFile('path/to/compiled', compiledTemplate)); 
} 

fsp.readdir('./templates') 
    .then((files) => Promise.all(files.map(processTemplate))) 
    .catch((error) => console.log(error)); 

나는 당신이 파일 객체 당 "무슨 뜻인지 이해가 잘 모르겠어요 비록 및 익명의 기능 ".