无法通过mongo / express数据进行反应

时间:2018-03-30 08:57:11

标签: mongodb reactjs express

我试图从mongodb / express传递我的数据以使用componentDidMount()生命周期函数做出反应但由于某种原因它不起作用,但它却给了我"Uncaught (in promise) SyntaxError: Unexpected token < in JSON at position 0"错误。< / p>

以下是我如何设置我的快递:

app.get('/movies', function(req, res){
  movie.find({}, function(err, allMovies){
    if(err){
      console.log(err);
    } else {
      res.send(allMovies);
    }
  }) 
});

app.listen(3000, function(){
  console.log('App server is listening to 3000');
});

在我的反应文件中,我调用了通过webpack在8080端口运行的componentDidMount函数。

componentDidMount() {
  console.log('test')
  fetch('/movies')
    .then(response => response.json())
    .then(movies => this.setState({
      movies: movies
    }));
}

当我在console.log响应时它返回https://prnt.sc/iye6kk

知道我为什么做错了为什么我的数据传递不正确?

1 个答案:

答案 0 :(得分:1)

componentDidMount中,脚本正在解析对JSON的响应。

.then(response => response.json())

但是服务器没有以JSON格式发送响应。

以json格式发送。

res.json({allMovies}); //ecma6 shorthand property names

或者

res.json({allMovies : allMovies});