【问题标题】:How to interpret file content as template string?如何将文件内容解释为模板字符串?
【发布时间】:2016-05-22 14:03:35
【问题描述】:

我想知道是否有办法将从文件中读取的内容用作模板字符串?

例如:我的文件 hello_world.txt:

hello world from ${name}

然后类似(使用 nodejs):

var name = 'Jérémie';
var fileContent = fs.readFileSync('./hello_world.txt');
debug(fileContent); // Hello word from Jérémie

使用 eval() 函数似乎可行,但我不太喜欢这种解决方案。

谢谢

【问题讨论】:

  • 如果你想要这样的东西,你可能应该研究一个真正的模板库。我喜欢Handlebars.js,因为它非常轻巧且易于使用。
  • @ssube 我已经在使用 mustache,您的解决方案是使用它而不是模板字符串?
  • @apsillers 是的,我看到了这个帖子,但不确定我真的是目标:-/
  • @Gnujeremie 如果您从文件中加载字符串(不是代码),则必须将其视为小胡子模板或代码。 Mustache 将具有更好的错误处理能力,并且通常比 eval 更安全。
  • 为什么这被标记为重复?链接的线程根本不处理读取文件并在插入内容后写入文件。

标签: javascript node.js string ecmascript-6 template-strings


【解决方案1】:

假设您信任正在阅读的文件,您可以使用eval 完成此操作:

let message = "${greeting} World",
    greeting = "Hello";
    
alert(eval(`\`${message}\``))

【讨论】:

  • 正如我在问题中所说,我知道使用 eval() 是可能的,但我正在寻找没有 eval() 函数的解决方案。
猜你喜欢
  • 2011-08-30
  • 2019-02-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-14
  • 1970-01-01
相关资源
最近更新 更多