将数据从AngularJs发送到NodeJs

时间:2017-08-23 02:38:36

标签: javascript angularjs node.js

我将首先向您展示我的代码

角色代码:app.js

$scope.submit = function(){
$scope.jsonData={
                 "status":"OK",
                 "data":{
                        "nbOperatorPresent": $scope.nbOperatorPresent,
                        "objectif1stHour": $scope.objectif1stHour,
                        "objectif2ndHour": $scope.objectif2ndHour,
                        "objectif3rdHour": $scope.objectif3rdHour,
                        "objectif4thHour": $scope.objectif4thHour,
                        "objectif5thHour": $scope.objectif5thHour,
                        "objectif6thHour": $scope.objectif6thHour,
                        "objectif7thHour": $scope.objectif7thHour,
                        "objectif8thHour": $scope.objectif8thHour
                        }
                }
                $http.post("http://localhost:5000/settings",
JSON.stringify($scope.jsonData)).success(function(data,status){
                        console.log('success')
                    })
}

NodeJs代码:index.js

app.post('/settings',urlencodedParser,function(req,res){
         console.log(req.body)
})

如您所见,我有一个按钮来提交用户插入的数据并将其发送到服务器。

我的问题是,当我点击提交时,我的浏览器控制台中没有任何内容,我的意思是console.log('Success !')无法正常工作,也就是说.success(function(data,status))内部的所有代码都赢了& #39;执行所以我无法通知用户他已成功提交,我不知道问题来自哪里!!

但是在另一个控制台console.log(req.body)中,我找到了从 Angular 传递的所有数据。

任何人都可以向我解释这个吗?我尝试过其他解决办法,但总是遇到同样的问题:(

2 个答案:

答案 0 :(得分:1)

您没有从node.js代码返回任何内容。您需要添加返回数据,如:

app.post('/settings',urlencodedParser,function(req,res) {

    console.log(req.body)    
    res.send("Success") 

})

答案 1 :(得分:1)

扩大答案......

请注意,如果您不熟悉节点和表达,您可能希望养成返回的习惯

res.send(success: true, data: res).end()

它在角度或UI方面非常典型,能够解析为response.data对象。只是一个建议。

并改为:

.success(function(res,status){
       console.log(res.success, res.data)
 })

这是一种非常常见的架构,尤其是在处理您无法控制的Web服务时。