Переменные конфигурации не разрешаются в middleware.json в Loopback 3

#loopbackjs

#loopbackjs

Вопрос:

Я не могу разрешить restApiRoot переменную при ее использовании в middleware.json. Я использую Loopback 3. Вот моя настройка:

config.json

 {
  "restApiRoot": "/api"
}
 

middleware.json

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

Если я заменю ${restApiRoot} на /api then, это сработает. Я обнаружил эту проблему, которая звучит идентично, но их решением было обновление loopback и loopback-boot еще в 2016 году, и мои версии выходят далеко за рамки этого. Мой файл middleware.json соответствует моей версии (3) документов.

Ответ №1:

Я считаю, что loopback-boot выполняет замену переменных только тогда, когда } это последний символ. Смотрите Исходный код в lib/plugin-base.js (версия 3.x с обратной загрузкой):

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

Комментарии:

1. Вы правы. Спасибо Мирослав.