Vercel + Express,似乎无法获得任何复杂的路径
Vercel + Express, can't seem to get any complex paths working
我一直在尝试使用 Express 在 Vercel 上获取 GraphQL API 和 运行。通过这样做,我已经设法让我的主要 API 在 /api
端点下工作,没有很多问题:
app.use(
'/api',
graphqlHTTP(async (req, res) => ({
schema,
context: createContext({ req, res }),
graphiql: true,
})),
)
这暴露了 API 以及 graphql playground 没有任何问题
所以我随后尝试使用其他非 graphql 端点扩展它以用于 OAuth 目的,但无论我做什么,一旦部署 API 我似乎无法访问这些端点。
如果我尝试注册:
app.get('/api/testing', (req, res) => res.json({ foo: 'bar' }))
我在本地开发时会得到正确的响应,但是一旦部署I get a 404。
我已经制作了存储库public,可以找到服务器文件on Github。
有人知道这是怎么回事吗?为什么除了位于 /api
的那个端点以外,其他端点都没有工作?
它在 this 页面上关于将 Express 与 Vercel 结合使用。
您必须使用以下内容将 vercel.json 添加到项目的根目录中:
{
"rewrites": [{ "source": "/api/(.*)", "destination": "/api" }]
}
那么你可以使用:
app.get("/api/some/path", (req, res) => {
res.send("wow, it actually worked");
});
我一直在尝试使用 Express 在 Vercel 上获取 GraphQL API 和 运行。通过这样做,我已经设法让我的主要 API 在 /api
端点下工作,没有很多问题:
app.use(
'/api',
graphqlHTTP(async (req, res) => ({
schema,
context: createContext({ req, res }),
graphiql: true,
})),
)
这暴露了 API 以及 graphql playground 没有任何问题
所以我随后尝试使用其他非 graphql 端点扩展它以用于 OAuth 目的,但无论我做什么,一旦部署 API 我似乎无法访问这些端点。
如果我尝试注册:
app.get('/api/testing', (req, res) => res.json({ foo: 'bar' }))
我在本地开发时会得到正确的响应,但是一旦部署I get a 404。
我已经制作了存储库public,可以找到服务器文件on Github。
有人知道这是怎么回事吗?为什么除了位于 /api
的那个端点以外,其他端点都没有工作?
它在 this 页面上关于将 Express 与 Vercel 结合使用。 您必须使用以下内容将 vercel.json 添加到项目的根目录中:
{
"rewrites": [{ "source": "/api/(.*)", "destination": "/api" }]
}
那么你可以使用:
app.get("/api/some/path", (req, res) => {
res.send("wow, it actually worked");
});