阻止 Next.js 生成某些路径文件

Preventing Next.js from generating certain path files

我目前正在使用 Node.js、Koa、React 和 Next.js 构建电子商务(Shopify、BigCommerce 等)扩展。

作为代码库的一部分,我有 URL 只能在服务器端执行的方法。 URL 不应生成页面。但是,Next.js 总是需要生成一个页面。

有没有办法只让 Next.js 简单地调用 URL 方法而不生成页面?例如,/app/auth 不应生成页面,而是执行服务器代码。但是,/app/dashboard 应该会生成一个页面。

我知道使用 useFileSystemPublicRoutes 来防止这种行为。但是,我发现它很不稳定,因为它还需要客户端代码。

However, Next.js always requires a page to be generated

不,这不是真的,您可以使用 custom server 来决定路由是否应该呈现页面。

express.js的简单示例:
渲染页面 :

  server.get('/my-page', (req, res) => {
    return app.render(req, res, '/mypage', {...req.params, ...req.query})
  })

一个 api 端点 :

server.post("/my-endpoint", async (req, res) => {
     res.json({});
});

请注意,对于 运行 自定义服务器,您需要使用如下内容更新 package.json 中的脚本:

"scripts": {
  "dev": "node server.js",
  "build": "next build",
  "start": "NODE_ENV=production node server.js"
}

如果您使用的是 Koa.js,这里有一个带有 koa 的自定义服务器的官方示例 here