我试图从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。
知道我为什么做错了为什么我的数据传递不正确?
答案 0 :(得分:1)
在componentDidMount
中,脚本正在解析对JSON的响应。
.then(response => response.json())
但是服务器没有以JSON格式发送响应。
以json格式发送。
res.json({allMovies}); //ecma6 shorthand property names
或者
res.json({allMovies : allMovies});