Node.js NodeJS,批处理文件,替代为每个文件编写过多的对象/函数?

Node.js NodeJS,批处理文件,替代为每个文件编写过多的对象/函数?,node.js,batch-processing,mustache,Node.js,Batch Processing,Mustache,我需要获取所有名为templates/的mustachetemplates目录,并用hogan编译它们 理论上,假设他们的名字是 file1.胡须 file2.2胡须 file3.胡子 然后我们获得每个视图,并将结果保存到名为build/的输出目录中 理论上,由此产生的名称是 name.file1 name.file2 name.file3 显然,异步更可取,但我最感兴趣的是如何有效地做到这一点?我不敢相信,唯一的方法就是使用每个文件对象和匿名函数。您可以将该模块与Promise一起使用。所有这

我需要获取所有名为templates/的mustachetemplates目录,并用hogan编译它们

理论上,假设他们的名字是

file1.胡须 file2.2胡须 file3.胡子

然后我们获得每个视图,并将结果保存到名为build/的输出目录中

理论上,由此产生的名称是

name.file1 name.file2 name.file3

显然,异步更可取,但我最感兴趣的是如何有效地做到这一点?我不敢相信,唯一的方法就是使用每个文件对象和匿名函数。

您可以将该模块与
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));
虽然我不确定我是否理解您所说的“每个文件对象和匿名函数”的含义。

您可以将该模块与
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));

虽然我不确定我是否理解您所说的“每个文件对象和匿名函数”的含义。

为什么不将所有文件列在一个目录中,在那里保存模板并处理每个模板?我想除了显而易见的解决方案之外,还不清楚你到底在问什么。另外,“在每个文件中写入过多的对象/函数”意味着什么?也许可以展示一些你正在谈论的例子。为什么不在一个目录中列出所有文件,在那里保存模板并处理每个模板?我想除了显而易见的解决方案之外,还不清楚你到底在问什么。另外,“在每个文件中写入过多的对象/函数”意味着什么?也许可以举一些你正在谈论的例子。