Как экспортировать переменные из module.exports во внешний модуль в Node.js? - PullRequest
0 голосов
/ 14 апреля 2020

Я пытаюсь импортировать некоторые переменные (переменные mapbox) из config.js в controller.js, чтобы использовать их для выполнения HTTP-вызовов. Моя проблема в том, что когда я console.log(...) эти переменные, они undefined. Что я тут не так делаю?

Спасибо.

// config/index.js
module.exports = {
  mapBoxAPIBase:'https://api.mapbox.com/geocoding/v5',
  mapBoxKey:"pk.xxxxxxxxx",
}

// controllers/controller.js
const { mapBoxAPIBase, mapBoxKey } = require('../config');
module.exports = {
  Location: {
      fwdGeocoding: async (address) => {
          console.log(mapBoxAPIBase);
          console.log(mapBoxKey);

      }
  }

}

Результаты

console.log(mapBoxAPIBase); => undefined
console.log(mapBoxKey); => undefined

1 Ответ

0 голосов
/ 14 апреля 2020

Кажется, я понял это. При объявлении переменной внутри module.exports убедитесь, что вы объявили функцию, которая returns что-то; в противном случае при попытке импортировать переменную в другой модуль это будет undefined

//config.js
module.exports = {
  mapBox: () => {
    return {
      mapBoxAPIBase:'https://api.mapbox.com/geocoding/v5',
      mapBoxKey:"pk.xxxxxxxxx",     
    }
 
  }

}

//controller.js
const { mapBox } = require('../config');
module.exports = {
  Location: {
    fwdGeocoding: async (address) => {
      console.log(mapBox());

    }
  }

}

//Results

{
  mapBoxAPIBase:'https://api.mapbox.com/geocoding/v5',
  mapBoxKey:"pk.xxxxxxxxx",     
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...