Предотвращение Next. js от создания определенных файлов пути - PullRequest
0 голосов
/ 28 января 2020

В настоящее время я создаю расширение для электронной коммерции (Shopify, BigCommerce и др. c.), Используя Node.js, Koa, React и Next. js.

Как часть У меня есть методы URL, которые должны выполняться только на стороне сервера. Там не должно быть страницы, созданной для URL. Однако Next. js всегда требует создания страницы.

Есть ли способ только Next. js просто вызывать метод URL, а не генерировать страницу? Например, /app/auth не должен генерировать страницу, а должен выполнять код сервера. Однако /app/dashboard должен сгенерировать страницу.

Мне известно об использовании useFileSystemPublicRoutes в качестве способа предотвращения такого поведения. Тем не менее, я обнаружил, что это довольно шатко, поскольку ему также нужен клиентский код.

1 Ответ

0 голосов
/ 28 января 2020

Однако, Next. js всегда требует создания страницы

Нет, это не так, вы можете использовать пользовательский сервер и решить, если Маршрут должен или не должен отображать страницу.

Простой пример с 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({});
});

Обратите внимание, что для запуска пользовательского сервера вам необходимо обновить скрипты в пакете. json примерно так:

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

Если вы используете Koa. js есть официальный пример для нестандартного сервера с koa здесь

...