NodeJS класс всегда возвращает undefined - PullRequest
0 голосов
/ 16 июня 2020

Я пытаюсь передать значения из одного класса в другой файл js, но при всех попытках он всегда возвращает мне значение undefined. это мой этап

config. js

class Token {
  _token = '';

  constructor(token) {
    this._token = token;
  }

  get getToken() {
    return this._token;
  }
}

class Url {
  get getUrl() {
    return 'https://api.com';
  }
}

exports.token = Token;
exports.url = Url;

instance. js

const config = require('./config');

let tkn = new config.token();
console.log('tkn', tkn.getToken);
console.log('TKN', config.token.getToken);

let url = new config.url();
console.log('URL', config.url.getUrl);
console.log('url', tkn.getUrl);

Ответы [ 3 ]

1 голос
/ 16 июня 2020

Здесь я прокомментировал проблемы:

const config = require('./config');

let tkn = new config.token(); // Token constructor expects an argument.
console.log('tkn', tkn.getToken); // This is correct and will work provided the constructor argument.
console.log('TKN', config.token.getToken); // You must instantiate the token and use the instance.

let url = new config.url();
console.log('URL', config.url.getUrl); // Same as with the token. It must be instantiated and getUrl accessed through that instance.
console.log('url', tkn.getUrl); // Here you're trying to call getUrl of the Token class but it doesn't exist.

Фиксированная версия

const config = require('./config');

let tkn = new config.token("token");
console.log('tkn', tkn.getToken);

let url = new config.url();
console.log('URL', url.getUrl);
1 голос
/ 16 июня 2020

ваш экземпляр. js файл будет похож на этот

const config = require('./config');
config.url.getUrl();

и config. js файл

class Token {
        _token = '';

        constructor(token) {
          this._token = _token;
        }

        static getToken() {

          return this._token;

        }
      }

      class Url {
        static getUrl() {
          //return 'https://api.com';
          console.log("something")
        }
      }

      exports.token = Token;
      exports.url = Url;
1 голос
/ 16 июня 2020

Правильное использование вашего скрипта будет

const config = require('./config');

let tkn = new config.token('value');
//                         ^^^^^^^^
console.log('tkn', tkn.getToken); // value

let url = new config.url();
console.log('url', url.getUrl); // https://api.com
//                 ^^^

Определенные вами свойства геттера не являются статическими c, вы не можете получить к ним доступ на config.token или config.url.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...