首页 文章

我如何将我的mongodb数据传输到反应状态

提问于
浏览
0

我有一个反应应用程序,只需从api中提取数据 . 而不是api,我决定使用mongodb并创建一个简单的db而不是express作为服务器的工具 .

如果我将单独使用express,我可以简单地做两件事:1 . 创建一个我可以显示所有数据的路径2.创建一个我可以显示所有数据的ejs页面 .

app.get('/cats', function(req, res){
  cat.find({}, function(err, allCats){
    if(err){
      console.log(err);
    } else {
      res.render('cats', {cats: allCats});
    }
  })
});

然后从EJS文件:

<% cats.forEach(cat => { %>
  <h4><%= cat.title %></h4>
  <h5><%= cat.breed %></h5>
<% }); %>

现在不是将这些数据抛给ejs文件/视图,而是需要将数据抛出到我的反应应用程序,以便它可以为我处理渲染:

class App extends Component{
 constructor(props){
   super(props);

   this.state = { 
     cats: [],
   };
   this.catSearch('meow');
 }

 catSearch(term){
   getCats(term, API_KEY, (cats) => {
     this.setState({ 
       cats: cats,
     });
   });
 }

 render(){
   const catSearch = _.debounce((term) => { this.catSearch(term) }, 300);

   return (
     <div>
       <SearchBar onSearchTermChange={catSearch}/>
       <CatList  cats={ this.state.cats }/>
     </div>
   );
 }
};

注意:我在这里使用了一个辅助函数来提取api数据,但这不是这里的情况,因为我不需要从api中提取数据,而是需要从mongodb数据库中提取数据 .

任何想法我如何将数据从快递扔到我的反应文件,以便它可以处理渲染?

我是否需要在我的反应文件中包含一些文件,以便查询数据库?提前致谢 . 一段时间以来一直在想这个但没有运气 .

1 回答

  • 0

    在MERN中,React请求被发送到快速服务器,该服务器将在数据库中查询所需的数据 . 然后通过express获取数据并返回到React Web应用程序 .

    创建一个快速服务器,它将从MongoDB中获取所有猫的名称并将其返回到ReactJS Web应用程序 . 您可以使用Mongoose从MongoDB获取数据 .

    你必须在类中有一个 componentDidMount() 方法,并在其中放入api调用,以获取名称 . 然后,您必须使用从api收到的响应更新状态( setState ) .

相关问题