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");
});