node.js - 节点更新不起作用,发送到 api 时格式错误
问题描述
我尝试将我的数据从 Angular 更新到 Node.js
组件.ts
updatefunction(id,data){
console.log("component",data);
//component {role: "User", _id: "5c2dc052d6bfba36b41b34dd", name: "Test", email: "test123@gmail.com", //username: "Test"}
this.uAdminService
.updateUser(id,data).subscribe(
result => {
//console.log(result.json());
},
error => {
console.log(error.json());
}
);
}
在 myservice.ts
updatefunction(id, data){
console.log("service", data);
//service {role: "User", _id: "5c2dc052d6bfba36b41b34dd", name: "Test", email: "test123@gmail.com", //username: "Test"}
let headers = new Headers({ 'x-access-token': this.token, 'Content-Type': 'application/x-www-form-urlencoded' });
let options = new RequestOptions({ headers: headers });
return this.http.put(this.url+id, data, options);
}
我的nodejs控制器
router.put('/:id', VerifyToken, function (req, res) {
console.log(req.body);
//{'{\n "role": "User", \n "_id": "5c2dc052d6bfba36b41b34dd" \n}'}
User.findByIdAndUpdate({_id:req.params.id}, req.body, {new: true}).select("-password")
.then(users => {
res.send(users);
}).catch(err => {
res.status(500).send({
message: err.message || "Some error occurred while retrieving Report."
});
});
});
我的 req.body 控制台像这样{'{\n "role": "User", \n "_id": "5c2dc052d6bfba36b41b34dd" \n}'} 但我以这种格式从 angularjs 传递 {role: "User", _id :“5c2dc052d6bfba36b41b34dd”,名称:“Test”,电子邮件:“test123@gmail.com”,//用户名:“Test”}
我不知道为什么它会转换,所以它不会更新到 db
如果我从 api 控制台它会喜欢这个 {名称:“测试”,电子邮件:“test123@gmail.com”}
解决方案
更新myservice.ts
如下:
updatefunction(id, data){
console.log("service", data);
//service {role: "User", _id: "5c2dc052d6bfba36b41b34dd", name: "Test", email: "test123@gmail.com", //username: "Test"}
let headers = new Headers({ 'x-access-token': this.token, 'Content-Type': 'application/json' });
let options = new RequestOptions({ headers: headers });
return this.http.put(this.url+id, data, options);
}
在您发送格式化数据而不是数据时将其更改Content-Type
为。application/json
json
form
推荐阅读
- php - 在 Woocommerce 上的产品中设置产品类别术语
- android - 如何单击片段中的按钮以切换到 Kotlin 中的其他选项卡?
- javascript - Why the switch statement automatically answers to "default"
- angular - Declare a global website variable in Angular 7
- windows - 如何在powershell中仅列打印列表的某些行部分?
- scala - 提交作业时,spark-submit 中使用的参数是否有特定顺序?
- java - 如何通过 JSON 在地图上添加这些位置?
- django-rest-framework - 权限类 IsAuthenticated 在 DRF 中不起作用
- php - 我应该使用 Put、Patch 和 Delete 吗?我正在阅读一些东西,这让我想知道使用它们是否是传统的
- angular - 匹配两个日期 - TypeScript