我有一个代码请求,类似于代码中的其他代码,但它会挂起,我不明白为什么。
以下是控制器中的代码:
$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++;
}
}
}
});
});
}
我在HTML页面中获取数据,我使用控制器(使用Angular.js)来操作它,然后将其传输到我的server.js文件(node.js)。
请求结果,当我在Workbench上测试时,它没有问题。但是使用此代码,我有一个待处理的请求,如下所示:
当我停止Web应用程序时,可以进行请求执行的更改。
那么,如何解释现在待定?怎么解决这个问题?
答案 0 :(得分:5)
假设您的路由处理程序仅调用此addScroll()
函数,您就不会向请求发送响应。 res
传递给函数,但它不会在任何地方使用。一旦你res.end();
到某个地方,你应该在客户端看到响应。