【发布时间】:2017-01-15 03:03:44
【问题描述】:
让我解释一下我的实际问题。 我有一个看起来像这样的模板字符串:
/${name}
get
post
/{id}
get
/file-content
get
post
缩进必须保持不变。
现在,如果我要使用这样的模板字符串,它可能看起来像这样:
function test(arr) {
let ret = []
arr.forEach(
function(name) {
return `/${name}
get
post
/{id}
get
/file-content
get
post`
return ret
}
)
}
看起来很可笑,对吧?我当然可以在我的模板中添加额外的空格以匹配我的代码缩进,但是之后我必须对字符串执行不必要的操作以再次对其进行规范化。
所以我的想法是将模板字符串移动到外部文件,并在我需要模板字符串时require 该文件。
但是 require 不能用于该问题,因为它只不过是一个文本文件,我当然不想每次需要它时都从磁盘读取该文件并对其执行eval。
我可以想出几个解决这个问题的方法,但我似乎找不到令人满意的解决方案。
【问题讨论】:
-
只是出于好奇:为什么首先需要它采用这种格式?
-
你的意思是
${id}? -
您可以使用标记模板来规范缩进中的额外空格。
-
@nils 和 Bergi 的 fromat 被称为 YAML。我需要它用于 RAML。 raml.org/developers/raml-200-tutorial#base-raml-file
标签: javascript node.js ecmascript-6 require template-strings