在环回 3 的 middleware.json 中未解析配置变量

Config variables not being resolved in middleware.json in Loopback 3

在 middleware.json 中使用 restApiRoot 变量时,我无法解析它。我正在使用 Loopback 3。这是我的设置:

config.json

{
  "restApiRoot": "/api"
}

middleware.json

  "auth": {
    "./middleware/order-auth": {
      "paths": [
        "${restApiRoot}/Orders"
      ]
    }
  },

如果我用 /api 替换 ${restApiRoot} 那么它就可以了。我发现 this issue 听起来完全一样,但他们的解决方案是在 2016 年更新 loopback 和 loopback-boot,而我的版本远远超出了这个范围。我的 middleware.json 与我的版本 (3) 文档匹配。

我相信 loopback-boot 仅在 } 是最后一个字符时才执行变量替换。参见 lib/plugin-base.js 中的源代码(loopback-boot 版本 3.x):

var DYNAMIC_CONFIG_PARAM = /$\{(\w+)\}$/;
function getConfigVariable(app, param, useEnvVars) {
  var configVariable = param;
  var match = configVariable.match(DYNAMIC_CONFIG_PARAM);
  // etc.