我被卡在GET Route端点上,以将JSON数据数组从MongoDB返回到我的localhost:5000服务器,这样我就可以为我的前端axios检索它。到目前为止,我的仅代码控制台将我需要前端的数据注销在Visual Studio Code中服务器终端上的文档]
这是GET路由的服务器代码
app.get('/pets', function(req, res){ const resultArray = []; client.connect(err => { assert.equal(null, err); console.log("Connected successfully to server"); const db = client.db(dbName); const cursor = db.collection('pet').find({}); iterateFunc = (doc,err) => { assert.equal(null, err); resultArray.push(doc); console.log(JSON.stringify(doc, null, 4)); if(err) { console.log(err) } } cursor.forEach(iterateFunc); client.close(); res.send({pets: resultArray}); });
这是获取路线的前端Reactjs代码
import React, {
Component
}
from 'react';
import axios from 'axios';
export default class ListPets extends Component {
constructor(props) {
super(props);
this.state = {
pets: [],
isLoaded: false,
}
}
componentDidMount = () => {
this.getPets();
};
getPets = async() => {
const res = await axios.get('http://localhost:5000/pets/');
const pets = res.data;
this.setState({
isLoaded: true,
pets: pets
});
console.log('Data has been received!');
console.log(pets.data)
return pets;
}
render() {
console.log('State: ', this.state);
const {
isLoaded,
} = this.state;
if (!isLoaded) {
return <div> Loading... </div>;
} else {
return (<div></div>);
}
}
}
我被卡在GET Route端点上,以将JSON数据数组从MongoDB返回到我的localhost:5000服务器,这样我就可以为我的前端axios检索它。到目前为止,我的仅代码控制台注销了...
您的代码很好:问题出在您的数据库上。在此示例中,codesandbox的示例将您的请求替换为https://jsonplaceholder.typicode.com/users,效果很好。
问题是您在光标耗尽之前关闭了连接并响应用户。