3

让我解释一下我的实际问题。我有一个模板字符串,看起来像这样:

/${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

我可以想出几个解决这个问题的方法,但我似乎找不到令人满意的解决方案。

4

1 回答 1

1

这个怎么样:

// template.js
module.exports = name => `
/${name}
  get
  post
  /{id}
    get
    /file-content
      get
      post
`.trim()

// app.js
const template = require('./template')('name');
于 2016-09-07T12:35:37.513 回答