Firebase Hosting не может найти Express Конечные точки - PullRequest
0 голосов
/ 14 апреля 2020

Я настроил хостинг на Firebase и настроил свое приложение Node.js express в соответствии с документацией, предоставленной Google. Включая правильную структуру папок и инструкции командной строки для запуска функций firebase и firebase-функций.

Структура папки:

Project
-- functions
   -- node_modules
   -- index.js
   -- package.json
-- public
   -- index.html
   -- 404.html
.firebaserc
firebase.json

Я добавил приложение express в Firebase функционирует HTTP-запрос через код ниже:

// Set up endpoint
app.get('/api', (req, res) => {
    res.json({
        message: 'Welcome to the Line Prophet API.  Good luck.'
    })
});

/**
 * Firebase cloud functions 
 */
exports.app = functions.https.onRequest(app);

Мой Firebase. json файл настроен для направления всех запросов к месту назначения приложения:

{
  "hosting": {
    "public": "public",
    "rewrites": [
      {
        "source": "**",
        "destination": "app"
      }
    ]
  }
}

Как только я запускаю firebase deploy из моего родительского каталога, все проходит нормально и говорит, что приложение развернуто: enter image description here

Однако после этого я перехожу на https://line-prophet.web.app/api и я получаю страницу 404 не найдена ошибка.
enter image description here

Я пытался запустить это локально с firebase служат и у меня такая же проблема. Это работало кратко, поэтому я чувствую, что все настроено правильно, однако после повторного развертывания он сломался навсегда. Любые советы приветствуются. Спасибо!

В последних версиях говорится, что в Firebase развернуто всего 4 файла, что кажется очень низким. Я проверил вкладку «Функции» и вижу, что «app» там и исходный код верен.

1 Ответ

1 голос
/ 15 апреля 2020

Благодаря @LawrenceCherone, изменившему базу данных. Файл json на:

"rewrites": [
      {
        "source": "**",
        "function": "app"
      }
    ]

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

...