Задать вопрос
@Shagfey
FullStack JS developer

Почему не работает загрузка страницы next.js + express.js?

Помогите с решением проблемы. Я делаю SPA на связке next.js + express.js.
Проблема в том, что у меня происходит ошибка при рендеринге страницы.

Вот так не работает:

server.get('/blog', (req, res) => {
            app.render('/blog', {}, (err) => {
                console.log("Не удалось отрендерить страницу 'blog'!");
                console.log("Подробная ошибка:", err);
            });
        });

А вот так работает:

server.get('/blog/:id', (req, res) => {
            app.render('/blog', {}, (err) => {
                console.log("Не удалось отрендерить страницу 'blog'!");
                console.log("Подробная ошибка:", err);
            });
        });

Но мне не нужны никакие параметры, мне бы хотелось загружать свою страницу по такому адресу: '/blog'.

Текст возникающей ошибки:
(node:7216) UnhandledPromiseRejectionWarning: TypeError: page.replace is not a function
    at normalizePage (C:\Users\Евгений\WebstormProjects\pl-site\node_modules\next\dist\server\on-demand-entry-handler.js:514:27)
    at HotReloader._callee8$ (C:\Users\Евгений\WebstormProjects\pl-site\node_modules\next\dist\server\hot-reloader.js:798:74)
    at tryCatch (C:\Users\Евгений\WebstormProjects\pl-site\node_modules\regenerator-runtime\runtime.js:62:40)
    at Generator.invoke [as _invoke] (C:\Users\Евгений\WebstormProjects\pl-site\node_modules\regenerator-runtime\runtime.js:288:22)
    at Generator.prototype.(anonymous function) [as next] (C:\Users\Евгений\WebstormProjects\pl-site\node_modules\regenerator-runtime\runtime.js:114:21)
    at asyncGeneratorStep (C:\Users\Евгений\WebstormProjects\pl-site\node_modules\@babel\runtime-corejs2\helpers\asyncToGenerator.js:5:24)
    at _next (C:\Users\Евгений\WebstormProjects\pl-site\node_modules\@babel\runtime-corejs2\helpers\asyncToGenerator.js:27:9)
    at C:\Users\Евгений\WebstormProjects\pl-site\node_modules\@babel\runtime-corejs2\helpers\asyncToGenerator.js:34:7
    at new Promise (<anonymous>)
    at new F (C:\Users\Евгений\WebstormProjects\pl-site\node_modules\core-js\library\modules\_export.js:36:28)
    at HotReloader.<anonymous> (C:\Users\Евгений\WebstormProjects\pl-site\node_modules\@babel\runtime-corejs2\helpers\asyncToGenerator.js:23:12)
    at HotReloader.getCompilationErrors (C:\Users\Евгений\WebstormProjects\pl-site\node_modules\next\dist\server\hot-reloader.js:838:38)
    at DevServer._callee9$ (C:\Users\Евгений\WebstormProjects\pl-site\node_modules\next\dist\server\next-dev-server.js:405:41)
    at tryCatch (C:\Users\Евгений\WebstormProjects\pl-site\node_modules\regenerator-runtime\runtime.js:62:40)
    at Generator.invoke [as _invoke] (C:\Users\Евгений\WebstormProjects\pl-site\node_modules\regenerator-runtime\runtime.js:288:22)
    at Generator.prototype.(anonymous function) [as next] (C:\Users\Евгений\WebstormProjects\pl-site\node_modules\regenerator-runtime\runtime.js:114:21)
(node:7216) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a prom
ise which was not handled with .catch(). (rejection id: 2)
(node:7216) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-z
ero exit code.
  • Вопрос задан
  • 381 просмотр
Подписаться 1 Средний Комментировать
Решения вопроса 1
@Shagfey Автор вопроса
FullStack JS developer
В общем нашёл решение. Пишу здесь, возможно кому-нибудь ещё пригодиться :)

Так работает всё ок:
const router = express.Router();

router.get('/blog', (req, res) => {
            app.render('/blog', {}, (err) => {
                console.log("Не удалось отрендерить страницу 'blog'!");
                console.log("Подробная ошибка:", err);
            });
        });
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы