Экспресс-маршрут /index.js не работает в моем приложении React - PullRequest
0 голосов
/ 26 мая 2018

Я пытаюсь получить объект json в своем приложении React из index.js в Express, но при его загрузке я получаю «Unhandled Rejection (SyntaxError): неожиданный токен P в JSON в позиции 0».

Я успешно загрузился, когда использовал /users.js в качестве маршрута.

(index.js)

var express = require('express');
var router = express.Router();

 router.get('/', function(req, res, next) {
   vitamins: [
     {
        name: "Vitamin B2"
     }
   ],
   minerals: [
     {
        name: "Zinc"
     }
   ]});
 });


 (React app)

  componentDidMount() {
   fetch('/index')
     .then(res => res.json())
     .then(micros => {
     this.setState({
       micros: micros.vitamins
     });
   })
  }

Опять же, он работал нормально, когда я получил из /users.js, используя тот же код.Вместо этого я просто выбрал ('/ users').Я также попытался просто выполнить выборку ('/'), но я просто получил "Неожиданный токен <в JSON в позиции 0". </p>

Ответы [ 2 ]

0 голосов
/ 26 мая 2018

Я думаю, вам нужно сделать:

fetch('/')

not

fetch('/index')

в вашем коде React.

0 голосов
/ 26 мая 2018

Ошибка «Неожиданный токен <в JSON в позиции 0» возникает из-за того, что ваш ответ на самом деле не json, а HTML, что-то вроде ответа 404 html или ответа 500.Рекомендуется не совершать прямой серверный вызов с помощью '/'.Это в основном для загрузки всего приложения, которое обычно возвращает HTML.Вы должны поддерживать отдельное отображение для конечных точек, как вы упомянули «пользователи», а затем вызывать его из React fetch.Поместите некоторые дополнительные журналы консоли или отладку, когда вы впервые получите ответ, и вы сможете выяснить фактический ответ, который возвращается сервером </p>

...