2016-04-21 8 views
0

働き、データを操作して保存する$httpを介してサーバに送信します

問題は、そのコードの作品です場合によっては成功関数を返し、時にはエラーコード0を返しますが、サーバーログで成功を返してもデータがデータベースに保存されているのはなぜですか? 成功関数が呼び出され、エラー1が呼び出されることがあります。私は間違って何をしていますか?

角度制御装置は、次のとおり

app.controller("premiumAdvertsController",function($scope,ergastAPIservice,$routeParams,$location,$rootScope) 
 
{ 
 
    function uploadImage(input,success) { 
 
    console.log("yeh input hai ",input); 
 
    if (input.files && input.files[0]) { 
 
     var FR= new FileReader(); 
 
     FR.onload = function(e) { 
 
      success(e.target.result); 
 
     };  
 
     FR.readAsDataURL(input.files[0]); 
 
    } 
 
} 
 
     $scope.registerPremiumAdvertisement=function() 
 
     { 
 
      console.log("shakil k sath check!eeersss!"); 
 
      console.log("hello"); 
 
      var count=1; 
 
      var owner=$rootScope.currentUser.email; 
 
     var companyName=$scope.companyName; 
 
     var companySlogan=$scope.companySlogan; 
 
     var companyAddress=$scope.companyAddress; 
 
     var companyFacebookLink=$scope.companyFacebookLink; 
 
     var companyTwitterLink=$scope.companyTwitterLink; 
 
     var companyContactNumber=$scope.companyContactNumber; 
 
     var companySiteLink=$scope.companySiteLink; 
 
     var sliderText=$scope.imageText; 
 
     var category="premiumBrand";  
 
     var featuredOffer1Title=$scope.featuredOffer1Title; 
 
     var featuredoffer1Description=$scope.featuredoffer1Description; 
 
     var featuredoffer1Expiry=$scope.featuredoffer1Expiry; 
 

 
     var featuredOffer2Title=$scope.featuredOffer2Title; 
 
     var featuredoffer2Description=$scope.featuredoffer2Description; 
 
     var featuredoffer2Expiry=$scope.featuredoffer2Expiry; 
 

 
     var featuredOffer3Title=$scope.featuredOffer3Title; 
 
     var featuredoffer3Description=$scope.featuredoffer3Description; 
 
     var featuredoffer3Expiry=$scope.featuredoffer3Expiry; 
 

 
     var featuredOffer4Title=$scope.featuredOffer4Title; 
 
     var featuredoffer4Description=$scope.featuredoffer4Description; 
 
     var featuredoffer4Expiry=$scope.featuredoffer4Expiry; 
 
console.log("hello"); 
 
     var detailedOffer1Description=$scope.detailedOffer1Description; 
 
     var detailedOffer2Description=$scope.detailedOffer2Description; 
 
     var detailedOffer3Description=$scope.detailedOffer3Description; 
 
     var detailedOffer4Description=$scope.detailedOffer4Description; 
 
     console.log("hello"); 
 

 

 
     var storeName=$scope.storeName; 
 
     var file1=document.getElementsByClassName("companyLogo")[0]; 
 
     var file2=document.getElementsByClassName("picture2")[0]; 
 
     var file3=document.getElementsByClassName("picture3")[0]; 
 
     var file4=document.getElementsByClassName("picture4")[0]; 
 
     var file5=document.getElementsByClassName("picture5")[0]; 
 
     console.log("hello"); 
 
     //var file6=document.getElementsByClassName("picture6")[0]; 
 
     //var file7=document.getElementsByClassName("picture7")[0]; 
 
     var f1,f2,f3,f4,f5; 
 
     var out=[f1,f2,f3,f4,f5]; 
 
     var arr=[file1,file2,file3,file4,file5] 
 

 
     for (var i=0;i<arr.length;i++) 
 
     { 
 

 
      console.log(i); 
 
      
 
      if(arr[i].files[0]) 
 
      { 
 
      (function(ith){ 
 
       uploadImage(arr[ith],function(result){ 
 
       out[ith]=result; 
 
       count++; 
 
       console.log(count,"count"); 
 
       if(count==6) 
 
       { 
 
       console.log("count hogya six!"); 
 
       var featuredOffer1={offerTitle:featuredOffer1Title,offerDescription:featuredoffer1Description,offerExpiry:featuredoffer1Expiry}; 
 
       var featuredOffer2={offerTitle:featuredOffer2Title,offerDescription:featuredoffer2Description,offerExpiry:featuredoffer2Expiry}; 
 
       var featuredOffer3={offerTitle:featuredOffer3Title,offerDescription:featuredoffer3Description,offerExpiry:featuredoffer3Expiry}; 
 
       var featuredOffer4={offerTitle:featuredOffer4Title,offerDescription:featuredoffer4Description,offerExpiry:featuredoffer4Expiry}; 
 
       var featuredOffers=[]; 
 
       featuredOffers.push(featuredOffer1); 
 
       featuredOffers.push(featuredOffer2); 
 
       featuredOffers.push(featuredOffer3); 
 
       featuredOffers.push(featuredOffer4); 
 
       var pages=[]; 
 
       var pageCount=0; 
 
     var offerDescriptions=[]; 
 
     var detailerOffer1={offerDescription:detailedOffer1Description,offerPicture:out[1]} 
 
     var detailerOffer2={offerDescription:detailedOffer2Description,offerPicture:out[2]} 
 
     var detailerOffer3={offerDescription:detailedOffer3Description,offerPicture:out[3]} 
 
     var detailerOffer4={offerDescription:detailedOffer4Description,offerPicture:out[4]} 
 
     offerDescriptions.push(detailerOffer1); 
 
     offerDescriptions.push(detailerOffer2); 
 
     offerDescriptions.push(detailerOffer3); 
 
     offerDescriptions.push(detailerOffer4); 
 

 
     var f={pageCount:pageCount,owner:owner,category:category,pages:pages,companyLogo:out[0],imageText:sliderText,companyName:companyName,companySlogan:companySlogan,companyAddress:companyAddress,companyContactNumber:companyContactNumber,companyFacebookLink:companyFacebookLink,companyTwitterLink:companyTwitterLink,companySiteLink:companySiteLink,featuredOffers:featuredOffers,offerDescriptions:offerDescriptions,premiumAdd:true}; 
 
     console.log("f bangya!"); 
 
     ergastAPIservice.saveHotBrand(f).then(function(res){ 
 
        console.log("server pe chala gya data!"); 
 
        if(res.success) 
 
        { 
 
         console.log("successfully got success from server !!"); 
 
        $(".modalKaText").text("successfully uploaded"); 
 
       $("#myModal").modal(); 
 
       $location.path("/home"); 
 
       } 
 
        else if(res.error) 
 
        { 
 
         console.log("got error from server!!!"); 
 
         $(".modalKaText").text("There was some error"); 
 
       $("#myModal").modal(); 
 
       $location.reload() 
 
        } 
 
        else { 
 
         console.log("got nothing from server"); 
 
        } 
 
       },function(res){ 
 
        res=JSON.stringify(res); 
 
        console.log("error found!!",res); 
 
       }) 
 

 
       } 
 
      }) 
 
      })(i); 
 
      
 
      } 
 
      else 
 
      { 
 
      count++; 
 
      console.log(count,"count"); 
 
      } 
 

 
     } 
 

 

 

 
     } 
 
     
 
});

$のHTTP関数(saveHotbrand)のためのコードは次のとおり

​​ nodejsエクスプレスこのリンクのコードは次のとおりです。


 

 
app.post('/saveAdd',function(req,res){ 
 
\t console.log("save add request!"); 
 
    var collection=req.db.get("advertisements"); 
 
    console.log("got database") 
 
    collection.insert(req.body,function (err,doc){ 
 
    if(err) 
 
    { 
 
    \t console.log("sending error") 
 
     res.send({error:true}); 
 
    } 
 
    else { 
 
    \t console.log("sending success") 
 
     res.send({success:true}); 
 
    } 
 

 
    }) 
 
})

+0

この例をペアにする必要があります。 – cwallenpoole

+0

私はちょうどできるだけ徹底的にしようとしています –

+0

ちょうど副メモとして:同じ要素の異なるクラス名を持っている場合は、 'id'を使用するか、一般的なクラス名を使用してください。 –

答えて

0

ここに来る人にとって、ページは基本的にリダイレクトされていたので、ngsubmitの代わりにng-clickを使用してコントローラ機能を呼び出すようになりました。

0

はnodejsコードでこれを試してみてください:

app.post('/saveAdd',function(req,res){ 
    var collection=req.db.get("advertisements",function(err){ 
      collection.insert(req.body,function (err,doc){ 
      if(err) 
      { 
       res.send({error:true}); 
      } 
      else { 
       res.send({success:true}); 
      } 

     }) 
    }) 

}) 

私はコールバック関数を追加することで解決しました同様の問題に直面していました。あなたは質問hereを見ることができます。

+0

nop、doesnt work! –

0
そして、それが唯一の成功上で動作します。この ergastAPIservice.saveHotBrand(f)は.success(機能(RES)に{ }

をごeargast関数呼び出しを変更し

+0

元のコードと同じですが、$ httpの角度jsのドキュメントでは、成功とエラーは推奨されなくなりました。 –

0

をあなたが経由してフォームを送信していますボタンをクリックしてクリックイベントを処理してフォームを送信すると、いつでもonCLick関数からfalseを返す必要があります。

0

thisページによると、エラーコード0は実際には成功のコードですあなたのif条件が原因です問題だ。 0の小切手を含めるとうまくいくはずです。

関連する問題