快递路线/index.js在我的React应用程序中不起作用

时间:2018-05-26 14:14:19

标签: json reactjs express routes fetch

我试图从Express中的index.js获取我的React应用程序中的json对象,但是当它加载时我得到了#34; Unhandled Rejection(SyntaxError):位于0的JSON中的意外标记P&# 34 ;.

当我使用/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')。我也尝试过提取(' /'),但我得到了#34;意外的令牌<在JSON的位置0和#34;。

2 个答案:

答案 0 :(得分:1)

错误,意外的令牌<在位置0的JSON中,由于您的响应不是真正的json而是HTML,类似于404 html响应或500响应。 建议不要使用' /'进行直接服务器呼叫。这主要用于加载通常返回HTML的整个应用程序。 您应该为您提到的端点维护单独的映射'用户'然后从React fetch中调用它。 在第一次获得响应时添加一些额外的控制台日志或调试,您将能够找出服务器返回的实际响应

答案 1 :(得分:0)

我认为你需要这样做:

fetch('/')

fetch('/index')

代码中的