Как я могу использовать ЭТО с Babel в nodejs? - PullRequest
1 голос
/ 09 марта 2020

В прошлом я мог использовать:

var _this = this
...
exports.someFunction = function (req, res) {
    _this.create(someVar)
}
...
exports.create = (someVar) => {
//logic here
return something
}

Но так как я добавил BABEL для использования GraphQl, пакет. json:

"devDependencies": {
     "@babel/core": "^7.8.4",
     "@babel/node": "^7.8.4",
     "@babel/preset-env": "^7.8.4",
     "@babel/register": "^7.8.3"
   }

и .babelr c файл с:

{
   "presets": [
     [
       "@babel/env"
     ]
   ]
}

Я получаю сообщение об ошибке:

uncaughtException: Невозможно прочитать свойство 'create' из null

Пожалуйста, дайте мне знать, что я делаю неправильно или что я могу сделать в .babelr c, чтобы разрешить использование это

Спасибо.

1 Ответ

2 голосов
/ 09 марта 2020

Поскольку вы хотите сослаться на функцию, которая является свойством exports, почему бы не обратиться к exports, чтобы получить к ней доступ? Нет необходимости зависеть от контекста вызова модуля:

exports.someFunction = function (req, res) {
    exports.create(someVar);
}

Звучит так, будто верхний уровень модуля Babel не вызывается с контекстом вызова, поэтому this равно undefined (так же, как это было бы быть в строгом режиме).

...