Arhn - архитектура программирования

Почему добавление команды firebase serve дополнительной информации к URL-адресу?

Моя проблема заключается в тестировании моих кодов на локальном хосте (порты: 5000, 5001). Я использую команду ниже в окнах терминала:

sudo firebase serve

И он дает ссылки после готовности:

hosting[helloapp]: Serving hosting files from: public
hosting[helloapp]: Local server: http://localhost:5000
functions: app: http://localhost:5001/helloapp/us-central1/app

Вроде нормально. Но когда я пробую функции, некоторые URL-адреса работают неправильно. Например: если в бэкэнд-пути URL-адреса исчез код перенаправления, «helloapp/us-central1/app». URL-адрес хостинга работает хорошо. Я не знаю, почему в URL-адресе functions:app есть дополнительная часть?

Внутренняя часть index.js

app.use('/', express.static(path.join(__dirname, '../public'))); 
app.set('view engine', 'ejs'); 
app.set('views', path.join(__dirname, './app_server/views')); 

Код перенаправления:

catch(error => {
  console.log('cant access', error);
  res.redirect('/login');
}    

Проблема

URL перед перенаправлением:

http://localhost:5001/helloapp/us-central1/app

URL-адрес после перенаправления:

http://localhost:5001/login

URL, я ожидаю

http://localhost:5001/helloapp/us-central1/app/login

Ответы:


1

Частичные URL-адреса, начинающиеся с косой черты, интерпретируются как путь, относящийся к хосту исходного URL-адреса. Их иногда называют «абсолютной ссылкой на путь». Они эффективно стирают весь путь URL-адреса и начинают заново с пути, который вы указали.

(подробнее об этом)

Если вы хотите, чтобы ваш URL-адрес перенаправления основывался на существующем пути, вы можете просто добавить части пути, которые вам нужны, к исходному пути (найденному в req.path)

res.redirect(req.path + '/login');

Это должно добавить компонент пути в конец существующего URL-адреса, а не стирать существующий путь.

21.09.2018
  • Я предполагаю, что это работает в любом месте, локальном хостинге, функциях и хостинге firebase. Спасибо, Дуг. 21.09.2018
  • Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..