我在前端使用Express与NodeJS和AngularJS。点击这里后,在那里添加数据,在这里更新一些记录,在那里显示一个列表,我得到app.controller('GrupoController', ['$scope', '$location', '$routeParams', 'GrupoService',
function ($scope, $location, $routeParams, GrupoService) {
$scope.carregarDependenciasMeusGrupos = function () {
GrupoService.carregarDependenciasMeusGrupos().then(function (result) {
$scope.data = {
grupos: result.Data
};
});
};
$scope.editarGrupo = function(grupo) {
$location.path('/editar-grupo/' + grupo.Id);
};
}]);
。奇怪的是,在通过应用程序进行8或9次导航后,我收到了这个错误。在此之前,AJAX调用正常。
AngularJS控制器的一个示例:
function ajax(url, async, method, params, isJson, showLoading) {
var deferred = $q.defer();
$http.post('http://localhost:3000' + url, params).success(function(result) {
if (result.StatusCode === 403) {
$location.path('/login');
} else {
if (result.Success) {
deferred.resolve(result);
} else {
deferred.reject();
if (result.ErrorMessage) {
alert(result.ErrorMessage);
}
if (result.RedirectTo) {
window.location.href = result.RedirectTo;
}
}
}
}).error(function(err) {
deferred.reject();
});
return deferred.promise;
}
还有一个HTTP调用示例:
app.post('/grupos/get-dependencies-to-grupos', app.ensureAuthentication, function(request, response, next) {
query.openConnection().then(function(connection) {
var gruposRepository = new repositories.Grupos(connection);
gruposRepository.getDependenciasToGrupos(
request.headers["authorization"], request.body.grupoId)
.then(function(result) {
response.json({ StatusCode: 200, Data: result });
}, function(getDependenciesError) {
response.json({ StatusCode: 500, ErrorMessage: getDependenciesError });
});
});
});
这是我用Express和NodeJS创建一个通过上面的AJAX方法调用的动作的方法:
@Document(indexName = "documents", type = "customEntity", replicas = 0, shards = 5)
public class CustomEntity implements Serializable{
@Id
private String Id;
@Field(type = FieldType.String)
private String Field1;
@Field(type = FieldType.Integer)
private int Field2;
@Field(type = FieldType.Object) //not sure which annotation I should use
private JsonObject exportJSON; //gson object
...getters and setters...
}
在8或9次导航后,应用程序突然停止工作。你们能帮助我吗?谢谢!
答案 0 :(得分:0)
如果“getDependenciasToGrupos”承诺结果是错误,您没有“catch”会发生什么。
因此,如果它出错,则服务器(nodejs)没有http响应,浏览器在等待几个请求的响应后,会关闭连接。
尝试在promise中添加一个catch处理程序:
gruposRepository.getDependenciasToGrupos(
request.headers["authorization"], request.body.grupoId)
.then(function(result) {
response.json({ StatusCode: 200, Data: result })
.catch(function(error){response.json({ StatusCode: 503, Data: error})});