使用Node.js复制和转换文件

时间:2013-01-27 10:16:54

标签: node.js file-io template-engine

我想使用Node.js复制一些文件。基本上,这很容易,但我需要满足两个特殊要求:

  1. 我需要解析文件的内容并用实际值替换一些占位符。
  2. 文件名也可能包含占位符,我需要将其替换为实际值。
  3. 所以,虽然这基本上不是一项复杂的任务,但我猜你有多种方法可以解决这个问题。例如,如果我可以使用模板引擎来进行替换会很好,但另一方面,我需要将完整的文件作为字符串。我更喜欢基于流的方法,但接下来 - 我应该如何替换?

    你看,很多问题,我无法决定走哪条路。

    任何提示,想法,最佳实践,......?

    或者 - 是否有一个模块可以执行此任务?

1 个答案:

答案 0 :(得分:1)

您无需阅读整个文件即可编写自己的解决方案。只有当您100%确定文件不超过缓冲区块(通常为8KB或16KB)时,才应使用fs.readFile()

最简单的解决方案是创建可读流,附加data事件侦听器并逐个字符地迭代缓冲区读取。如果您有这样的占位符:${label},请检查是否找到${,然后将标记设置为true。开始存储标签名称。如果您发现}并且标志为真,那么您已经完成了。将flag设置为false,将temporal标签字符串设置为""

您不需要任何模板引擎或额外模块。