localhost:3000/en
Тогда мне нужно будет получить Дом, как и ожидалось. Но я получаю это исключение:
TypeError: невозможно прочитать свойство lang of undefined в Function.getInitialProps (/Users/lucacattide/Vagrant/debian/public/LC/front-end/.next/server/static/development/pages/_document.js:1111:32 )
Это потому, что я ранее читал параметр ctx.req.params.lang
из _document.js
getInitialProps
по разным причинам. Даже заменив на ctx.req.query.lang
все равно получаю.
В настоящее время я копирую два примера как из руководства по миграции, так и из статьи. Как предлагают оба, я пробую подход API
(https://zeit.co/guides/migrate-to-zeit-now/) и pages
тоже (https://zeit.co/guides/custom-next-js-server-to-routes/). В API-интерфейсе я реализовал внутри /api
путь, сегмент [lang].js
со следующим содержимым:
module.exports = (req, res) => {
res.send(req.query.lang);
}
Затем с помощью /pages
я скопировал и переименовал index.js
в [lang].js
внутри того же пути и заменил req.query.lang
, как упоминалось выше. Оба они не работают. Я застрял с тем же исключением, которое предупреждает о _document.js
. Мне это нужно из-за различных процессов внутри него, поэтому в моем случае его удаление не вариант. Конечно, я тестирую среду Now (работает now dev
) на моем localhost
. Приложение отлично работает в Express, поэтому я надеюсь решить эту проблему, чтобы правильно развернуть его сейчас.
Кто-нибудь испытывал это раньше или мог бы помочь мне с каким-либо предложением?
Заранее благодарим за поддержку.
РЕДАКТИРОВАТЬ:
Я тоже пытался форсировать пути, определяя маршруты в now.json
, но результат тот же. Вот моя текущая конфигурация:
{
"public": false,
"name": "LC",
"version": 2,
"routes": [{
"src": "/(?<lang>[^/]+)",
"dest": "/?lang=$lang"
}]
}
ИЗМЕНИТЬ 2:
Я переключил все внутри директории pages
, как это было предложено во 2-м руководстве, потому что от /api
я ничего не получил. Попытка разместить только [lang].js
маршрут и удалить определения маршрутов из now.json
.
В этот момент, осматривая объект req
, я получаю пустой.