Невозможно получить данные через getInitialProps в Next.Js после развертывания в AWS, но работает в среде разработки - PullRequest
0 голосов
/ 01 ноября 2019

У меня есть страница в приложении Next.js, в которой я пытаюсь получить данные через getInitialProps , которая прекрасно работает, когда я тестирую ее в режиме разработки, но не работает после развертывания в AWS. Я пытаюсь установить метатеги, чтобы я мог поделиться в социальных сетях для динамических страниц.

Я попытался установить метатеги через состояние, но он не работает, как если бы мы получили доступ к состоянию после монтирования компонента, и отладчик facebook не может найти мои метатеги. Я использую компонент класса, и код для getInitialProps выглядит следующим образом

static async getInitialProps({ query }) {
        const resp = await axios.get('/product/fetchSingleProduct/' + query.pid)
        console.log(query.pid)
        const data = await resp.data
        return { data }
     }

Как я уже говорил, он работает в среде разработки, и я могу видеть console.log(query.pid) на своем терминале. Но после развертывания я получаю сообщение об ошибке:

exception: {…}
kind: "ObjectId"
message: "Cast to ObjectId failed for value \"undefined\" at path \"_id\" for model \"Product\""
name: "CastError"
path: "_id"
stringValue: "\"undefined\""
value: "undefined"

Как показано ниже, файл package.json

{
  "name": "frontend",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "dev": "next",
    "start": "next start",
    "build": "next build"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "@fortawesome/fontawesome-svg-core": "^1.2.17",
    "@fortawesome/free-solid-svg-icons": "^5.8.1",
    "@fortawesome/react-fontawesome": "^0.1.4",
    "axios": "^0.18.0",
    "draft-js": "^0.10.5",
    "event-emitter": "^0.3.5",
    "file-saver": "^2.0.2",
    "isomorphic-unfetch": "^3.0.0",
    "moment": "^2.24.0",
    "next": "^7.0.3",
    "nprogress": "^0.2.0",
    "prop-types": "^15.7.2",
    "react": "^16.8.6",
    "react-countup": "^4.1.3",
    "react-dom": "^16.8.6",
    "react-facebook": "^8.0.4",
    "react-google-login": "^5.0.4",
    "react-image-magnify": "^2.7.4",
    "react-modal": "^3.8.1",
    "react-notifications": "^1.4.3",
    "react-onclickoutside": "^6.8.0",
    "react-quill": "^1.3.3",
    "react-redux": "^6.0.1",
    "redux": "^4.0.1",
    "styled-components": "^4.2.0",
    "styled-theming": "^2.2.0",
    "underscore": "^1.9.1",
    "url-loader": "^2.1.0",
    "xml-js": "^1.6.11"
  },
  "devDependencies": {
    "@zeit/next-css": "^1.0.1",
    "babel-plugin-styled-components": "^1.10.0"
  }
}

Буду признателен за любую помощь, спасибо и счастливого кодирования!

1 Ответ

0 голосов
/ 01 ноября 2019

Посмотрите на некоторые случаи: (Это могут быть проблемы во время развертывания)

  1. Попробуйте удалить прокси, если он существует в package.json. (Это может быть вызвано прокси-сервером)
  2. Как и ваше сообщение об ошибке, возможно, у вас также есть проблемы с бэкэндом. Проверьте еще раз.
  3. Извлеките ваш .gitignore, так как он может содержать содержимое / сборку, которая не будет загружать файл сборки. Прокомментируйте это.
  4. Извлеките сетевой запрос, если он достигает требуемого URI или нет.

Просто поделитесь проблемами, которые часто возникают во время развертывания. Надеюсь, это когда-нибудь вам поможет.

Кроме того, загрузите ваш файл package.json и .gitignore, чтобы иметь отличное представление о вашей проблеме.

Счастливое кодирование.

...