Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 有什么方法可以发送post请求,以便在react中检查和插入MongoDB中的值?_Javascript_Reactjs_Mongodb - Fatal编程技术网

Javascript 有什么方法可以发送post请求,以便在react中检查和插入MongoDB中的值?

Javascript 有什么方法可以发送post请求,以便在react中检查和插入MongoDB中的值?,javascript,reactjs,mongodb,Javascript,Reactjs,Mongodb,我正在尝试搜索学生记录是否在云数据库中。为此,我想在表单中提交学生ID并发布到预构建云MongoDB,如果找不到学生ID,那么我将把这个找不到的ID添加到DB中。到目前为止,我已经完成了将学生ID作为post请求提交给MongoDB的组件。我不知道如何为云数据库添加新的价值。我怎样才能在reactjs中做到这一点?有什么想法吗?我怎样才能做到这一点 我所做的: 这里是一个简单的检查学生ID组件,我可以将学生ID作为post请求提交给给定的RESTAPI,然后在DB中搜索值并相应地更新DB im

我正在尝试搜索学生记录是否在云数据库中。为此,我想在表单中提交学生ID并发布到预构建云MongoDB,如果找不到学生ID,那么我将把这个找不到的ID添加到DB中。到目前为止,我已经完成了将学生ID作为post请求提交给MongoDB的组件。我不知道如何为云数据库添加新的价值。我怎样才能在reactjs中做到这一点?有什么想法吗?我怎样才能做到这一点

我所做的

这里是一个简单的检查学生ID组件,我可以将学生ID作为post请求提交给给定的RESTAPI,然后在DB中搜索值并相应地更新DB

import React,{Component}来自“React”
导出默认类CehckInStdID扩展组件{
构造函数(){
超级();
this.state={
stdID:“,
checkInStatus:“假”,
Rsvp_状态:“错误”
};
this.onSubmit=this.handleSubmit.bind(this);
}
handleSubmit(e){
e、 预防默认值();
var self=这个;
//提交表单时,向服务器发送POST请求和数据。
获取('/getStudentList',{
方法:“POST”,
数据:{
stdID:self.refs.stdID
}
})
.然后(功能(响应){
返回response.json()
}).然后(功能(主体){
控制台日志(主体);
});
}
//值更改时的句柄更改
handlechange=({target:{value}})=>this.setState(state=>value.length试试这个
//提交表单时,不要向服务器发送POST请求和数据,首先从服务器获取学生列表的所有数据,然后将集合中每个学生的id与表单中接收到的学生id进行比较

handleSubmit(e) {
      e.preventDefault();
      var self = this;
      fetch('/getAllStudentsList').then(function(response) {
      let responseData = response.json();
      for (let eachData in responseData){
          if(responseData[eachData].uin == self.refs.stdID){
              console.log("Data is already present");
              return;
          }
          else{
              this.setState({
                 studentID:xxxxxxxxx, 
                 checkInStatus:True, 
                 Rsvp_status:False
              }, ()=>{
                     fetch("/addNewStudent",{
                         method:'POST',                             
                         body: {this.state.studentID,
                                           this.state.checkInStatus,
                                           this.state.studentID} 
                     }).then(function(response) {
                           return response.json()
                     }).then(function(body) {
                           console.log(body);
                     })
              })
          }
      }
  })
}
我希望它能帮助您,并为您提供该方法背后的主要思想。

试试这个 //提交表单时,不要向服务器发送POST请求和数据,首先从服务器获取学生列表的所有数据,然后将集合中每个学生的id与表单中接收到的学生id进行比较

handleSubmit(e) {
      e.preventDefault();
      var self = this;
      fetch('/getAllStudentsList').then(function(response) {
      let responseData = response.json();
      for (let eachData in responseData){
          if(responseData[eachData].uin == self.refs.stdID){
              console.log("Data is already present");
              return;
          }
          else{
              this.setState({
                 studentID:xxxxxxxxx, 
                 checkInStatus:True, 
                 Rsvp_status:False
              }, ()=>{
                     fetch("/addNewStudent",{
                         method:'POST',                             
                         body: {this.state.studentID,
                                           this.state.checkInStatus,
                                           this.state.studentID} 
                     }).then(function(response) {
                           return response.json()
                     }).then(function(body) {
                           console.log(body);
                     })
              })
          }
      }
  })
}

我希望它能帮助您,并为您提供该方法背后的主要思想。

您正在通过fetch将数据发送回服务器。现在您需要服务器中的逻辑来接收数据,查询数据库,然后采取适当的操作。您在后端使用什么语言(REST api)?是“getStudentList”是包含所有学生详细信息的列表的名称?还是什么else@Sisir我使用javascript,我为客户端建立了MongDB cloud和REST API,现在我在前端工作,通过发送请求来插入、检查DB中的值。你对这个问题有具体的解决方案吗?我是webdev的新手,所以我在陈述我的问题时可能弄错了,但我认为主要信息很清楚。@PradhumnSharma是的,
getStudentList
是将我带到DB的API路径。您正在通过fetch将数据发送回服务器。现在您需要服务器中的逻辑来接收数据,查询数据库,然后采取适当的操作。您在后端使用的是什么语言(REST API)?是“getStudentList”是包含所有学生详细信息的列表的名称?还是什么else@Sisir我使用javascript,我为客户端建立了MongDB cloud和REST API,现在我在前端工作,通过发送请求来插入、检查DB中的值。你对这个问题有具体的解决方案吗?我是webdev的新手,所以我在陈述我的问题时可能弄错了,但我认为主要的信息是清楚的。@PradhumnSharma是的,
getStudentList
是将我带到DB的API路径。这将起作用。你只需要更改确切的API名称,但结构将是相同的。如果你想,我可以解释整个结构。你能提供完整的JSFIDLE解决方案来查看你的代码如何与虚拟DB和数据一起工作吗ant来看看你的输出是什么样子的。谢谢你有没有可能有一个解决方案,或者,了解你的输出会非常有帮助。另外,这有可能使你的解决方案更具动态性吗?我的意思是,当我们要在你的解决方案中向数据库发送添加新条目的请求时,或者{this.setState}({studentID:xxxxxxxxx,checkInStatus:True,Rsvp\u状态:False}不是很有效。谢谢你的帮助。我已经添加了将数据发送到数据库中存储的部分。请检查此.setState方法中是否有回调函数。这将起作用。您只需更改确切的api名称,但结构将是相同的。如果您需要,我可以解释整个结构。您能否提供完整的JSfiddl我想看看你的代码是如何处理虚拟数据库和数据的。我想看看你的输出是什么样子的。谢谢你,有解决方案吗?或者,了解你的输出会非常有帮助。另外,这有可能使你的解决方案更具动态性吗?我的意思是,当我们在你的解决方案中向数据库发送添加新条目的请求时n、 else{this.setState({studentID:xxxxxxxxx,checkInStatus:True,Rsvp_status:False}不是很有效。感谢您的帮助。我还添加了将数据发送到数据库存储的部分。请检查此.setState方法中是否有回调函数。