Как повторно использовать экземпляр i18next в приложении Express - PullRequest
0 голосов
/ 24 июня 2019

У меня есть экспресс-бэкэнд, который я хочу интернационализировать. Я хочу:

  • инициализировать мой экземпляр i18next в одном месте
  • повторно использовать этот экземпляр в нескольких местах в коде
  • Я хочу использовать их также в коде модели, а не только в маршрутах

Это может звучать как примитивный вопрос, но даже после прочтения документации i18next я до сих пор не знаю, как мне следует использовать инициализированный экземпляр i18next. Если я использую i18next-express-middleware , я могу использовать метод t() в маршрутах. Хорошо, но что мне делать, если я хочу использовать его в моделях или в каком-то другом файле, скажем, в модели?

Мне не нравится идея передавать его в каждый метод модели через параметр. Я не могу просто сделать import i18next from 'i18next' в каждом файле, потому что он вернет новый экземпляр. Я не могу создать js-файл, в котором я мог бы инициировать экземпляр в асинхронной функции, а затем вернуть его, потому что я не могу вызвать асинхронную функцию через await в app.js (корневой файл моего экспресс-приложения). Я пытаюсь навязать его сценарию использования, для которого он не был создан?

Спасибо за любые советы.

...