我正在创建一个有队列的小型网络应用,我输入的队列代码如下:
角:
$scope.leaveQueue = function() {
$http.defaults.headers.post["Content-Type"] = "application/x-www-form-urlencoded";
$http.post('/user/queue/leave')
.success(function(data) {
if (data.hasOwnProperty('success')) {
$route.reload();
return $scope.user.inQueue = false;
};
});
}
$scope.enterQueue = function() {
$http.defaults.headers.post["Content-Type"] = "application/x-www-form-urlencoded";
$http.post('/user/queue/enter', $('#enterQueue').serialize())
.success(function(data) {
if (data.hasOwnProperty('success')) {
$route.reload();
return $scope.user.inQueue = true;
}
});
}
我用Node处理所述队列的后端是这样的:
router.route('/queue/enter')
.post(function(req, res, next) {
if (req.user.isLoggedIn) {
req.app.get('pg').connect(req.app.get('conString'), function(err, client, done) {
console.log(req.user.user_name, req.body.game, req.body.mode);
client.query("INSERT INTO queue (user_name, user_game, user_mode, created_on) VALUES ($1, $2, $3, $4)",
[req.user.user_name, req.body.game, req.body.mode, new Date()], function(err, results) {
if (err) { return res.json({'error': err}) };
return res.json({'success': 'Entered Queue Successfully'});
});
});
};
});
router.route('/queue/leave')
.post(function(req, res, nex) {
if (req.user.isLoggedIn) {
req.app.get('pg').connect(req.app.get('conString'), function(err, client, done) {
if (err) { return res.json({'error':err}) };
client.query("DELETE FROM queue WHERE user_name = $1", [req.user.user_name], function(err, results) {
if (err) { return res.json({ 'error': err}) };
return res.json({'success': results});
});
});
};
});
我的问题是,如果我多次进入和离开队列,我的请求开始变得无限pending
并且不会解决,直到我重新启动node app.js
我不知道为什么这发生在我身上,一切都回复了一个错误或者没有错误,所以我不确定为什么它只是悬挂,然后在重启后工作正常。
我不确定是什么导致这种情况,我是Angular的新手,我不确定我是否错误地使用$http
。任何信息都很好。谢谢。