У меня есть приложение, в котором пользователи могут добавлять фильмы в свой список наблюдения. Я хочу запретить пользователям добавлять фильм, который уже существует в их списке наблюдения.Ошибка возврата в Angular из Express
Это моя addMovie функция в моем угловом контроллере:
$scope.addMovie = function (movie) {
movieFactory.selectMovie(movie).then(function(response){
movieFactory.addMovie(response);
Notification.success(movie.title + ' has been added to your watchlist');
$scope.movies = [];
$scope.overlay = false;
$scope.searchquery = '';
$rootScope.$broadcast('onAddMovieEvent', response);
});
};
Я передать объект фильма через мой первоначальные нг щелчка. Затем я запрашиваю функцию selectMvoie
в movieFactory
, которая получает правильные данные фильма из APD TMDB.
Затем я вызываю функцию addMovie
на фабрике movieFactory
с ответом от selectMovie
.
factory.addMovie = function (movie) {
var deferred = $q.defer();
$http({
method: 'POST',
url: '/movies',
data: movie
})
.success(function (data) {
deferred.resolve(data);
})
.catch(function() {
deferred.reject();
});
return deferred.promise;
};
Это делает /post
запрос, который входит в мой экспресс-маршрут:
router.post('/', function(req,res){
pool.getConnection(function(err, connection) {
connection.query('SELECT * FROM user_movieid WHERE movie_id= ? AND userid= ?' ,[req.body.id, req.user.id] , function(err, result) {
for (var i = result.length - 1; i >= 0; i--) {
if (movie.id === result[i].movie_id) {
console.log('exists');
}
}
});
});
})
Там также connection.query
, которая отправляет фильм в базу данных, но это не актуально сейчас.
Мое положение сейчас в том, что когда я отправляю фильм, который уже существует, моя консоль узла показывает сообщение exists
, но все равно публикует фильм (очевидно).
Как вернуть статус «ошибки» обратно в мою функцию addMovie
в моем угловом контроллере, чтобы я мог сделать оператор if, чтобы показать другое уведомление?
Спасибо, мне пришлось немного изменить код, чтобы получить .catch в правильном запросе на заводе, но он работает сейчас. –