首页 > 解决方案 > 如何使用 $http POST 传递对象参数并在 Nodejs 服务中访问

问题描述

我创建了一个 POST 请求,我在其中向服务器发送一个参数,在服务器端我得到的错误就像找不到数据一样。

客户端js

var postData= JSON.stringify({name:"Alex",age:"34"});
var deferred = $q.defer();

            $http.post(appSettings.baseUrl + '/users', postData)
                .success(function (response) {
                    deferred.resolve(response)
                }).error(function (error) {
                    deferred.reject('Failed to connect');
                });


            return deferred.promise;
        }

服务器js(节点js)

app.post('/api/users', function (req, res) {
    var user = req.body.postData;
   // user is not getting in server
    });
});

我无法在服务器中获取 postData。

标签: javascriptangularjsnode.jshttphttp-post

解决方案


您正在尝试访问postDate请求正文中发送的数据的属性,并且您没有发送任何具有postData属性的对象。

如果您签入节点后端日志记录console.log(req.body),我真的确定您会得到

{name:"Alex",age:"34"}

您应该访问此处的任何属性,例如req.body.namereq.body.age

如果您想使用任何属性名称访问主体上的完整对象,您最好使用属性名称发送它

$http.post(appSettings.baseUrl + '/users', {"postData" : postData})

推荐阅读