Использовать существующее приложение ExpressJS в качестве приложения Firebase - PullRequest
0 голосов
/ 29 октября 2019

У меня есть приложение, которое работает на Heroku. Это простое веб-приложение без фоновых заданий или базы данных.

По сути, оно имеет три конечные точки. Один из них обслуживает HTML, другой - конечную точку POST для связи с бэкендом, а третий - конечную точку GET, которая также отображает содержимое HTML-ошибок.

Теперь внешний интерфейс - это не одностраничное приложение, а цельне быть тем. Это просто HTML-страница с формой и некоторыми ссылками. Внешний интерфейс можно использовать без Javascript.

Мои вопросы:

  1. Можно ли повторно использовать существующий код ExpressJS? Я думал об импорте обратных вызовов маршрута и использовании их внутри «функций».
  2. Я знаю, что есть хостинг Firebase, который может обслуживать статический контент. Однако, как я уже упоминал, сервер может отвечать содержимым HTML, поэтому мне понадобится традиционная маршрутизация (например, /error url для отображения ошибки HTML). В моем приложении ExpressJS я использую шаблон .ejs, поэтому я хотел бы загрузить шаблон и отобразить его.
  3. Можно ли настроить Firebase так, чтобы «бэкэнд» (функции) мог быть размещен в моем собственном домене? Я хотел бы вызывать относительные URL из моего индексного файла (например, конечную точку POST) вместо использования URL-адреса Google Firebase.

Я просто пытаюсь выяснить, может ли мой сценарий использованиясоответствовать инфраструктуре Firebase. Я думаю, что это хороший кандидат, так как мне нужно, чтобы веб-приложение реагировало нечасто, и оно не очень требовательно, не так много людей использовали бы его. Это также мой хобби-проект, поэтому я стараюсь минимизировать расходы.

1 Ответ

1 голос
/ 30 октября 2019

Чтобы ответить на ваши вопросы:

  1. Да, вы можете, но имейте в виду, что некоторые вещи ограничены. В моем случае я пытался использовать библиотеку multer для составных форм, но не работал, и вместо этого мне пришлось прибегнуть к использованию busboy. Чтобы использовать приложение Express для конечной точки функции, вы просто передаете свой app в качестве параметра функции onRequest следующим образом: functions.https.onRequest(app).

    Документы: https://firebase.google.com/docs/functions/http-events#using_existing_express_apps

  2. Хостинг только для статических файлов. Вы не можете использовать это с .ejs. Если только вы не собираетесь использовать это в качестве прокси для своего приложения Express.
  3. Да, вы можете настроить собственные домены, чтобы вы могли использовать свои домены вместо доменов по умолчанию. Справка: https://firebase.google.com/docs/hosting/custom-domain
    1. На странице хостинга вашего проекта введите мастер для подключения настраиваемого домена:

      • Если у вас только один хостингсайте, нажмите Подключить домен.
      • Если у вас несколько сайтов хостинга, нажмите «Просмотр» для нужного сайта, затем нажмите «Подключить домен».
    2. Введите пользовательское имя домена, которое вы хотите подключить к вашему хостинг-сайту.

    3. (Необязательно) Установите флажокчтобы перенаправить все запросы в настраиваемом домене на второй указанный домен (например, yourdomain.com и www.yourdomain.com перенаправить на один и тот же контент).

    4. Нажмите Продолжить, чтобы начать проверкупроцесс.

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