2015-01-08 79 views
0

我正在使用Angularjs構建我的網站,並且正在使用Node js對其進行測試並進行表達。所以,我可以發送一個帶有來自聯繫頁面表單的信息的json項目。但是,我不知道如何將成功或失敗代碼從Node.js返回給Angularjs以重定向到感謝頁面。另外,我需要知道如何將信息發送到我的電子郵件並將其保存到數據庫以及如何爲表單添加令牌。我知道我正在使用MEAN堆棧。我學習更好的手錶。如何將成功或失敗代碼從Node.js返回給Angularjs

這裏是我的節點JS:

var express = require('express'); 
var app = express(); 
var formidable = require('formidable'); 

app.use(express.static(__dirname + '/public')); // navigate to where the app reside 

app.get('/', function (request, response) { 
    response.redirect('Index.html'); 
}); 

app.post('/Contact', function (request, response) { 
    var frm = new formidable.IncomingForm(); 
    frm.parse(request, function(err, formData){ 
    var Name = formData.Name, 
     Email= formData.Email, 
     Message = formData.Message; 
     response.writeHead(200, { "Content-Type": "application/json" }); 
     response.end("{'status:' 200}"); 
    }); 
}); 
var port = 8080; 
app.listen(port); 
console.log('Listening on port: ' + port); 

這裏是我Angularjs:

$scope.submit = function() { 
     console.log('Im in the controller'); 
     console.log($scope.formData);  
     $http({ 
      method : 'POST', 
      url  : '/Contact', 
      data : $.param($scope.formData), 
      headers : { 'Content-Type': 'application/json' } 
     }).success(function(result, status, headers, config) { 
       console.log(result); 
      if(result.status == "???"){ 
       redirectTo: '/Thnkyu'; 
      } 
     }).error(function(result, status, headers, config) { 
     // called asynchronously if an error occurs 
     // or server returns response with an error status. 
      console.log(result); 
     }); 
    } 
+1

'result.status == 「200」',不能正常工作? ? –

+0

'response.json({status:200});' – generalhenry

+0

當我提交表單;該控制檯顯示:TypeError:無法讀取未定義的屬性「協議」 它顯示之前:ERR_CONNECTION_REFUSED,因爲我在設置標頭和數據之前有url部分。 –

回答

1

當我提交表單;控制檯顯示:TypeError:無法讀取未定義的屬性「協議」在它顯示:ERR_CONNECTION_REFUSED之前,因爲在設置標頭和數據之前我有url部分。

問題是我使用angularJs $ http依賴如上所示;但它不起作用。所以,我使用$ HTTP的依賴,像這樣:

$scope.submit = function() { 
     console.log($scope.formData); 
     $http.post("/contact", $scope.formData) 
     .success(function(reponse){ 
      if(reponse.status == 200) 
      console.log('im in') 
      $location.path('/thnkyu'); 
     }); 

,並從服務器的響應是這樣的:

... 
if(!eor){ 
     console.log(eor); 
     response.json({status: 200}); 
    } 
相關問題