Объясняю свою проблему, У меня есть домен Gcloud "example.appspot.com" (например) с веб-сайтом от SquareSpace. Я хотел бы добавить веб-приложение в node.js в этом домене, не перезаписывая исходный сайт. Я хотел бы подключить пользователя к веб-приложению по этой ссылке «example.appspot.com/webApp/». А если вы перейдете на «example.appspot.com», вы попадете на веб-сайт squareSpace.
Если я разверну веб-приложение и перейду на «example.appspot.com», у меня будет веб-приложение, но веб-сайт SquareSpace не работает ... Однако в моем приложении нет «получить или опубликовать» для «/», первая страница - «/ логин». Если я продолжу "/", у меня будет просто "НЕ МОГУТ ПОЛУЧИТЬ /"
Я пытался использовать dispath.yaml, но это не сработало.
dispatch:
- url: "example.appspot.com/webApp"
service: default
Ничего не меняется и "example.appspot.com/webApp" не работает ...
И я попытался использовать openapi-appengine.yaml.
swagger: "2.0"
info:
description: "WebApp"
title: "Title WebApp"
version: "1.0.0"
host: "example.appspot.com/webApp"
Но ему не нужен "/" в host.
Я пытался использовать обработчики в app.yaml, но это не сработало ...
Я не нахожу решения.
Вы хоть представляете, как я могу указать gcloud использовать приложение только в "/ webApp /"? Прошу прощения за плохой уровень английского, я улучшаю его с каждым днем.





В зависимости от вашего сценария есть два способа добиться этого:
1) Экспресс-маршруты:
каждый маршрут выполняет нужную вам логику. Узел работает с системой module.exports / require, поэтому для каждого маршрута у вас может быть отдельный JS-файл, который экспортирует все необходимые функции, используемые в коде маршрута.
Пример:
server.js
const express = require('express');
const app = express();
app.get('/', (req, res) => {
const index = require('./index');
res.send(index.hello());
});
app.get('/webapp', (req, res) => {
const webapp = require('./webapp');
res.send(webapp.appFunction());
});
index.js
exports.hello = function() {
return "Hello";
}
webapp.js
exports.appFunction = function() {
return "App Function";
}
2) Перенаправление службы: если вам нужно полное приложение, работающее на какой-либо конечной точке, а не с некоторыми функциями, вы можете развернуть веб-приложение как отдельную службу в том же приложении и перенаправить клиентский запрос на эту службу в данной конечной точке.
Для этого создайте и разверните службу webapp точно так же, как приложение по умолчанию, из собственной папки с выделенными package.json и app.yaml. Просто укажите название сервиса в app.yaml: service: webapp
После развертывания ваша служба будет доступна по веб-ссылке в форме https://[SERVICE_ID]-dot-[MY_PROJECT_ID].appspot.com, которую вы можете использовать для перенаправления с конечной точки вашего приложения по умолчанию:
app.get('/webapp', (req, res) => {
res.redirect('https://[SERVICE_ID]-dot-[MY_PROJECT_ID].appspot.com');
});
Подробнее об услугах и маршрутизации здесь. Вы также можете управлять маршрутизацией с помощью dispatch.yaml:
Пример, если ваш идентификатор службы - "webapp"
dispatch:
- url: "example.appspot.com/webApp"
service: webapp
не беспокойтесь, вы справитесь, подход к обслуживанию (а не маршруты) может быть лучшим в вашей ситуации. Дай мне знать, когда ты это проверишь.
Большое спасибо за ответ alp. Сейчас я работаю над чем-то другим, но я думаю, что это хороший метод решения моей проблемы. Я попробую позже. На данный момент мы используем другой домен для бета-тестирования. Но мы переходим в PROD через месяц, и мне нужно будет это сделать.