2013-08-28 24 views
0

我必須向運行localhost:3001的節點服務器發送post請求。我成功地完成了請求並獲取節點服務器中的發佈數據,但數據格式不正確。使用AngularJS&ExpressJS格式化響應JSON數據

AngularJS:

function MyCtrl1($scope,$http,$location) {  
    $scope.user = { }; 
    $scope.login = function() { 

    $http.post("http://localhost:3001/login", 
       $scope.user, 
       {'Content-Type': 'application/json'}).success(function(result) { 
        $scope.resultPost = result; 
        $location.path('/'); 

       }).error(function() { 
        console.log("error"); 
       }); 
    }; 
} 

的NodeJS:

app.post('/login', function(req,res) { 
    console.log(JSON.stringify(req.body)); 

    res.end('ok'); 
}); 

log : {"{\"username\":\"test\",\"password\":\"pass123\"}":""} 

有沒有辦法在這裏得到一個格式化的數據?

+0

我想你想要的JSON.parse(str); – Dylan

回答

1

您可以使用JSON.parse()將正文解析爲JavaScript對象。

var obj = JSON.parse(req.body); 
var username = obj.username; 
var password = obj.password; 
+0

是它的工作,現在我得到 {'{「用戶名」:「測試」,「密碼」:「pass123」}':''} 但我怎麼得到它的用戶名和密碼的價值.. – Nish

+0

@如果它成功轉換爲對象,則可以使用點概念訪問該字段。更新了答案。 – zsong

+0

當我試圖轉換它節點服務器引發錯誤SyntaxError:意外的令牌 在Object.parse(本機) – Nish