Зачем называть переменные внутри функции именем самой функции?

Рейтинг: 0Ответов: 0Опубликовано: 10.05.2023

Зачем основная логика обернута функцией dotenv? Почему не экспортировать сам объект? Почему объект dotenv внутри функции назван именем самой функцией?

Код:

"use strict";

var fs = require('fs');

function dotenv() {
  dotenv = {
    environment: process.env.NODE_ENV || "development",

    _loadEnv: function() {
      return dotenv._setKeysAndValuesFromEnvFilePath(".env");
    },
    _loadEnvDotEnvironment: function() {
      return dotenv._setKeysAndValuesFromEnvFilePath(".env."+dotenv.environment);
    },
    _setKeysAndValuesFromEnvFilePath: function(filepath) {
      try {
        var data        = fs.readFileSync(filepath);
        var content     = data.toString().trim();
        var lines       = content.split('\n');

        for (var i=0; i<lines.length; i++) {
          var key_value_array = lines[i].split("=");
          var key             = key_value_array[0].trim();
          var value           = key_value_array[1].trim();

          process.env[key]    = value;
        }
      } catch (e) {
      }

      return true;
    },
    load: function() {
      dotenv._loadEnvDotEnvironment();
      dotenv._loadEnv();

      return true;
    },
  };

  return dotenv;
}

module.exports = dotenv;

Ответы

Ответов пока нет.