javascript - 如何使用 $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。
解决方案
您正在尝试访问postDate
请求正文中发送的数据的属性,并且您没有发送任何具有postData
属性的对象。
如果您签入节点后端日志记录console.log(req.body)
,我真的确定您会得到
{name:"Alex",age:"34"}
您应该访问此处的任何属性,例如req.body.name
或req.body.age
如果您想使用任何属性名称访问主体上的完整对象,您最好使用属性名称发送它
$http.post(appSettings.baseUrl + '/users', {"postData" : postData})
推荐阅读
- sql - 如何在查询中转换时间并添加时区 - 日期格式无法识别
- django-models - 外键对应于 EditView 的 url 中的错误模型
- reactjs - 如何在基于反应的前端维护来自 ckeditor django 的格式化数据?
- javascript - 使用时刻检查 iso 字符串日期是否相同或在一小时之前
- c# - 用户控件的动态高度取决于文本块的内容
- flutter - Flutter 可滚动文本
- arm - 为什么 gRPC 会出现 InsecureServerCredentials() 卡住
- android - 我想在将其设置为 RecyclerView 适配器之前更新项目列表。列表来自服务器(Android、Kotlin)[已关闭]
- blender - Alpha 叠加在 Eevee Blender 中无法正确渲染,但在视口中正确显示
- ios - UINavigation 后退按钮操作仅更改