Необязательный экспресс-маршрут не найден при развертывании в Google App Engine - PullRequest
0 голосов
/ 28 октября 2019

Я добавил новый необязательный параметр в маршрут в моей службе Express. Все работает локально, однако при развертывании в Google App Engine мой сервис возвращает not found, если указан необязательный параметр.

Запуск основного сервера:

const indexRouter: express.Router = cradle.indexRouter; // from dependency injection
const server = express();
server.disable("x-powered-by");
server.use(responseTime(responseTimeLogger(logger)));
const port = process.env.PORT || 3000;
server.listen(port, () => {
      logger.info(`Express server has started on port ${port}`);
      server.use("/api/v1/", indexRouter);
      resolve();
});

cradle.indexRouter -> createIndexRouter:

function createIndexRouter(services: IIndexRouterArgs) {
  const indexRouter = Router();

  indexRouter.use("/weather", services.weatherRouter);
  indexRouter.use("/health", services.healthRouter);
  indexRouter.use("*", notFoundMiddleware);

  return indexRouter;
}

services.weatherRouter -> createWeatherRouter:

function createWeatherRouter(services: IWeatherRouterArgs) {
  const weatherRouter = Router();

  weatherRouter.get(
    "/:latitude/:longitude/:postalCode?",
    services.weatherController.reportWeather
  );

  return weatherRouter;
}

При запросе https://{service}.com/api/v1/weather/50/50/10001 я ожидаю нажатия services.weatherController.reportWeather, но вместо этого меня перенаправляют на notFoundMiddleware из-за параметра 10001 (postalCode). Удаление его возвращает успешный ответ.

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