Javascript 部署到Google App Engine时未找到Express可选路由
我在Express服务中为路线添加了一个新的可选参数。所有东西都在本地工作,但是当部署到Google App Engine时,当提供可选参数时,我的服务将返回not found 主服务器启动:Javascript 部署到Google App Engine时未找到Express可选路由,javascript,typescript,express,google-app-engine,google-cloud-platform,Javascript,Typescript,Express,Google App Engine,Google Cloud Platform,我在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
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();
});
bradle.indexRouter
->createIndexRouter
:
function createIndexRouter(services: IIndexRouterArgs) {
const indexRouter = Router();
indexRouter.use("/weather", services.weatherRouter);
indexRouter.use("/health", services.healthRouter);
indexRouter.use("*", notFoundMiddleware);
return indexRouter;
}
function createWeatherRouter(services: IWeatherRouterArgs) {
const weatherRouter = Router();
weatherRouter.get(
"/:latitude/:longitude/:postalCode?",
services.weatherController.reportWeather
);
return weatherRouter;
}
services.weatherRouter
->createWeatherRouter
:
function createIndexRouter(services: IIndexRouterArgs) {
const indexRouter = Router();
indexRouter.use("/weather", services.weatherRouter);
indexRouter.use("/health", services.healthRouter);
indexRouter.use("*", notFoundMiddleware);
return indexRouter;
}
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
,但由于10001(postalCode)参数,我将被路由到notFoundMiddleware
。删除它会返回成功的响应。您请求的url是什么?https://{service}.com/api/v1/weather/50/50/10001/api/v1来自哪里?您需要发布刚刚更新的完整设置和一些附加信息如果您使用console.logreq.params