Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.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请求被挂起?_Javascript_Mysql_Angularjs_Node.js - Fatal编程技术网

Javascript 为什么我的post请求被挂起?

Javascript 为什么我的post请求被挂起?,javascript,mysql,angularjs,node.js,Javascript,Mysql,Angularjs,Node.js,我有一个代码请求,类似于代码中的其他请求,但是它挂起了,我不明白为什么 以下是控制器中的代码: $scope.addScroll = function(){ InternDataProvider.addScroll(globalCtrl.unscrolled) .then(function(reports) { console.log("Changes saved"); globalCtrl.sc

我有一个代码请求,类似于代码中的其他请求,但是它挂起了,我不明白为什么

以下是控制器中的代码:

  $scope.addScroll = function(){
    InternDataProvider.addScroll(globalCtrl.unscrolled)
            .then(function(reports) {
                console.log("Changes saved");
                globalCtrl.scrollmessage="Combinaison "+globalCtrl.unscrolled.media+"/"+globalCtrl.unscrolled.platoform+" ajoutée.";
                globalCtrl.scrollmessageerr="";
                }).catch(function(err) {
                  console.error('Unable to fetch forecast report: ' + err);
        });
  };
工厂零件中的代码:

internDataProvider.addScroll = function(uscr)
{
    var httpParams = {
            unscrolled: uscr
    };


    return $http.post(addScroll, {
        params : httpParams,
        }).then(function(response){
            console.log("Successful: response from submitting data to server was: " + response);

            }).catch(function(err){
            console.log(err.statusCode);
    });

};
以及node.js部分中的代码:

//Add a combination of media or platform to the scroll
function addScroll(res, queryParams)
{
    var int1 = listMedias.indexOf(queryParams.unscrolled.media) +1;
    var int2 = listPlatforms.indexOf(queryParams.unscrolled.platform);
    connection.query("UPDATE safeplusdb.scroll SET isscrolled="+true+" WHERE idm="+int1+" AND vector_id="+int2+";", function(err, records) {
              if(err) throw err;
              console.log("UPDATE safeplusdb.scroll SET isscrolled="+true+" WHERE idm="+int1+" AND vector_id="+int2+";");
      connection.query("SELECT * FROM safeplusdb.scroll;", function (err, records){
              if(err) throw err;

              for(i=0; i<records.length; i++)
              {
                var record= records[i];
                indj=indk=0;
                if(record.isscrolled==false)
                {
                  if(record.idm==null && record.vector_id !=null)
                  {
                    listUnScroll[indj] = {media : null, platform : null};
                    listUnScroll[indj].media = null;
                    listUnScroll[indj].platform = listPlatforms[record.vector_id]; 
                    indj++;
                  }
                  else if(record.vector_id==null && record.idm!=null)
                  {
                    listUnScroll[indj] = {media : null, platform : null};
                    listUnScroll[indj].platform = null;
                    listUnScroll[indj].media = listMedias[record.idm-1];
                    indj++;
                  }
                  else
                  {
                    listUnScroll[indj] = {media : null, platform : null};
                    listUnScroll[indj].media = listMedias[record.idm-1];
                    listUnScroll[indj].platform = listPlatforms[record.vector_id]; 
                    indj++;  
                  }    
                }

                else if(record.isscrolled==true)
                {
                  if(record.idm==null && record.vector_id !=null)
                  {
                    listScroll[indk] = {media : null, platform : null};
                    listScroll[indk].media = null;
                    listScroll[indk].platform = listPlatforms[record.vector_id]; 
                    indk++;
                  }
                  else if(record.vector_id==null && record.idm!=null)
                  {
                    listScroll[indk] = {media : null, platform : null};
                    listScroll[indk].platform = null;
                    listScroll[indk].media = listMedias[record.idm-1];
                    indk++;
                  }
                  else
                  {
                    listScroll[indk] = {media : null, platform : null};
                    listScroll[indk].media = listMedias[record.idm-1];
                    listScroll[indk].platform = listPlatforms[record.vector_id]; 
                    indk++;  
                  }       
                }
              }

            });
    });
}
//将媒体或平台的组合添加到卷轴
函数addScroll(res、queryParams)
{
var int1=listMedias.indexOf(queryParams.uncolled.media)+1;
var int2=listPlatforms.indexOf(queryParams.Unrolled.platform);
connection.query(“UPDATE safeplusdb.scroll SET iscrowled=“+true+”,其中idm=“+int1+”和vector_id=“+int2+”;”,函数(err,records){
如果(错误)抛出错误;
console.log(“UPDATE safeplusdb.scroll SET isscrolled=“+true+”,其中idm=“+int1+”和vector_id=“+int2+”;”);
connection.query(“从safeplusdb.scroll;中选择*”,函数(错误,记录){
如果(错误)抛出错误;

对于(i=0;i您没有发送对请求的响应,假设您的路由处理程序只调用此
addScroll()
函数。
res
被传递给函数,但它不会在任何地方使用。一旦您
res.end()
在某个地方,您应该会在客户端看到响应。

如果您的路由处理程序只调用此
addScroll()
函数,则您不会发送对请求的响应。
res
会传递给函数,但不会在任何地方使用。一旦您
res.end()
在某个地方,您应该会在客户端看到响应。

请求处于挂起状态,因为它正在等待来自服务器的明确响应,而该响应从未出现。在服务器端代码中,您必须通过调用
res.end(definiteResponseString)
或调用后续
res.write来发送明确的响应(responseFragmentString)
then
res.end(optionallyLastResponseFragment)
请求处于挂起状态,因为它正在等待来自服务器的明确响应,而该响应从未出现。在服务器端代码中,您必须通过调用
res.end(definiteResponseString)发送明确的响应
或通过调用后续
res.write(responseFragmentString)
然后
res.end(可选最后一个responseFragment)
我刚刚在每个函数的末尾发布了res.send。resquest没有挂起,但SQL语句仍然很慢,我需要终止进程并重新启动它以查看更改。在另一个函数中,我没有放它,也没有问题。那么为什么呢?你可能应该放
res.end()
在最内部的回调函数(本例中为“选择”SQL查询回调函数)中,因此只有在更新和选择查询完成后才会发送响应。如果客户端希望响应中包含内容,则需要将其传递到
res.end()
(或使用Express的一个辅助方法,如
res.json()
如果要发送JSON响应)。我刚刚在每个函数的末尾发布了res.send。resquest没有挂起,但SQL语句仍然很慢,我需要终止进程并重新启动它以查看更改。在另一个函数中,我没有放它,也没有问题。那么为什么呢?您可能应该放
res.end()
在最内部的回调函数(本例中为“选择”SQL查询回调函数)中,因此只有在更新和选择查询完成后才会发送响应。如果客户端希望响应中包含内容,则需要将其传递到
res.end()
(或使用Express的一个辅助方法,如
res.json()
如果要发送JSON响应)。