Как указано здесь на Spectrum, у меня возникают проблемы при переносе моего следующего веб-сайта с пользовательского сервера Express на Now. Моя проблема в том, что я не могу получить домашнюю страницу, потому что я пытаюсь отправить параметры URL, но безуспешно. Мне нужно передать параметр lang
следующим образом:
localhost:3000/en
Затем я должен получить Дом, как и ожидалось. Но я получаю это исключение:
TypeError: Невозможно прочитать свойство 'lang' 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
, я все еще получаю его.
В настоящее время я копирую два примера, как в руководстве по миграции Zeit, так и в статье. Как оба предполагают, я пробую подход 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.
Кто-нибудь испытывал это раньше или мог бы помочь мне с каким-нибудь предложением?
Заранее спасибо за поддержку.
РЕДАКТИРОВАТЬ:
Я тоже пытался форсировать путипутем определения маршрутов в now.json
, но результат тот же. Вот моя текущая конфигурация:
{
"public": false,
"name": "LC",
"version": 2,
"routes": [{
"src": "/(?<lang>[^/]+)",
"dest": "/?lang=$lang"
}]
}
РЕДАКТИРОВАТЬ 2:
Я переключил все в pages
dir, как предложено во втором руководстве, потому что я ничего не получил от /api
. Попытка размещения только [lang].js
маршрута и удаления определений маршрутов из now.json
.
В этот момент при проверке объекта req
я получаю пустой объект.