gpt4 book ai didi

javascript - 带有 $http.post 的 Angular js 和 Node js 问题

转载 作者:太空宇宙 更新时间:2023-11-03 22:25:39 24 4
gpt4 key购买 nike

尽管服务器工作正常并返回我希望它返回的内容,但我的 angularjs $http.post .then 方法永远不会执行,.catch 方法也不会执行。

这是我的 Node js Controller ,正在验证电子邮件是否存在

module.exports.add = function(req, res, next) {
var user = new User(req.body);
User.find({email:req.body.email},function(err,doc){
if(err) {
{
err.status = 406;
return next(err);
}
}
if(doc.length){
return res.status(409).json({message: 'Email already exist'});
}
else {
user.save(function(err, doc) {
if (err) {
err.status = 406;
return next(err);
}
return res.status(201).json({message: 'Your account has been created successfully. Please login to continue.'});
}) //end of user.save
} //end of else
});
};

这是我的 Angular Controller

quizApp.controller("createAcc",['$scope','$http','$location','$timeout','signup',function ($scope,$http,$location,$timeout,signup) {
$scope.createAcc = function () {
signup.createAcc($scope.fName, $scope.email, $scope.password)
.then(function () {
console.log("it happened");
})
.catch(function (err) {
if(response.status === 409){
$scope.emailExist = true;
}
console.log("12345");

});
}
}


]);

这是我的 Angular 服务

quizApp.factory('signup', ['$http',function ($http) {
return {
createAcc : function (fName,email,password) {
var data = {fName:fName,email:email,password:password};
return $http.post('/api/v1/user/add',data)
}
}
}]);

所以现在的问题是,我的服务器正在执行正确的验证并向我发送 409 的状态,即电子邮件存在,但在我的 angularjs Controller 中 .then 函数或 .catch 函数从未运行。在控制台中,它只是抛出 409 错误,但 .then 函数或 .catch 函数永远不会被执行。我也尝试过使用 .success( function successCallback()}, function errorCallback(){} ) ,但这也不起作用。我不明白我在哪里做错了,尽管 Postman(应用程序)一切正常,但我无法在这里调试问题。我认为我在我的 Angular 代码中做错了什么,谁能告诉我为什么我的 .then 和 .catch 函数永远不会被执行?

最佳答案

$q 也注入(inject)到工厂

改变

['$http','$q',function ($http) {

['$http','$q',function ($http,$q) {

关于javascript - 带有 $http.post 的 Angular js 和 Node js 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47029855/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com