2015-05-11 6 views
0

Я использую node.js Angular.js и mongodb для своего приложения для регистрации. Я делаю ajax-вызов для отправки информации о регистрации пользователя в DB через сервер, но что я найденный, его функция успеха вообще не работает, хотя все данные вставляются в БД, но иногда иногда выполняется функция ошибки. Я хочу сделать что-то внутри этой функции успеха. Пожалуйста, проверьте мой код ниже.Jquery ajax Функция успеха не работает в приложении Node.js

loginController.js:

function loginController($scope){ 
    $scope.hidespan=true; 
    var userInfo=[] ; 
    $scope.signup=function(){ 
     if (document.getElementById('email').value==''){ 
      $scope.hidespan=false; 
      $scope.emailerror="* This field can not be blank"; 
      $('#email').addClass("err-email"); 
     }else{ 
      var value=validateEmail($('#email').val()); 
      if (value==false){ 
       $scope.hidespan=false; 
       $scope.emailerror="Email format is not correct" 
      }else{ 
       userInfo.push({email:$scope.email}); 
      } 
     } 
     if($('#fname').val()==''){ 
      $scope.hidespan=false; 
      $scope.fnameerror="* First name field canot be blank"; 
      $('#fname').addClass("err-email"); 
     }else{ 
      var fvalue=validateFname($scope.fname); 
      if(fvalue==true){ 
       $scope.hidespan=false; 
       $scope.fnameerror="User first name should contain more than 3 letter"; 
       $('#fname').addClass("err-email"); 
      }else{ 
       userInfo.push({fname:$scope.fname}); 
      } 
     } 
     if ($('#lname').val()==''){ 
      $scope.hidespan=false; 
      $scope.lnameerror="* Last name field canot be blank"; 
      $('#lname').addClass("err-email"); 
     }else{ 
      userInfo.push({lname:$scope.lname}); 
     } 
     if($('#pass').val()==''){ 
      $scope.hidespan=false; 
      $scope.passerror="* Password field canot be blank"; 
      $('#pass').addClass("err-email"); 
     }else{ 
      var pass=validatePass($scope.password); 
      if(pass==false){ 
       $scope.hidespan=false; 
       $scope.passerror="password length should not less than 6"; 
       $('#pass').addClass("err-email"); 
      }else{ 
       userInfo.push({password:$scope.password}); 
      } 
     } 
     if($('#codeest').val()==''){ 
      $scope.hidespan=false; 
      $scope.codeerror="* code field canot be blank"; 
      $('#codeest').addClass("err-email"); 
     }else{ 
      userInfo.push({code:$scope.code}); 
      console.log('user',userInfo); 
     } 
     if(userInfo.length==5){ 
      console.log('user',userInfo); 
      var sentData={email:userInfo[0].email,fname:userInfo[1].fname,lname:userInfo[2].lname,password:userInfo[3].password,code:userInfo[4].code} 
      $.ajax({ 
       type:'POST', 
       data:sentData, 
       url:"/signUp", 
       success:function(data){ 
        console.log('data',data); 
        $('#signupbox').hide(); $('#loginbox').show(); 
       }, 
       error:function(err){ 
        console.log('error',err); 
        $('#signupalert').css('display','block'); 
        $scope.error=err; 
       } 
      }) 
     } 
    } 
} 

Следующий код мой код на стороне сервера для работы БД.

admin.js:

var mongo = require('mongojs'); 
db = 'swarga', 
collections = ['user'], 
db = mongo.connect("127.0.0.1:27017/"+db, collections); 
exports.signup=function(req,res){ 
    console.log('req',req.body); 
    db.user.insert({email:req.body.email,fname:req.body.fname,lname:req.body.lname,password:req.body.password,code:req.body.code},function(err,docs){ 
     console.log('docs',docs) 
    }) 
} 

Пожалуйста, помогите мне решить эту проблему.

ответ

0

Я думаю, вам не хватает res.send(<some response>); на вашем сервере. Вы должны отправить ответ клиенту.

+0

@ yarons: Да, я сделал это. Через некоторое время я обнаружил, что мне не хватает, чтобы отправить ответ назад. –