我需要获取名为templates /的所有胡子模板目录,并使用hogan编译它们。
理论上,假设他们的名字是,
file1.mustache file2.mustache file3.mustache
然后我们得到每个视图,并将结果保存到名为build /.
的输出目录中理论上,结果名称是
name.file1 name.file2 name.file3
显然异步是优选的,但我最感兴趣的是你如何有效地做到这一点?我无法相信唯一的方法是对每个文件对象和匿名函数进行操作。
答案 0 :(得分:2)
您可以使用fs-promise模块和Promise.all
来轻松地并行读取,处理和编写文件:
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));
虽然我不确定我是什么意思和#34;每个文件对象和匿名函数"。