通过REST端点用JSON对象更新Mongoose架构
Updating Mongoose schema with JSON object via REST endpoint
我有一个REST端点,它与JSON对象(User)一起提交,我只是将相应的mongo记录设置为该JSON对象。这为我省去了更新服务方法和端点中的模式更改的麻烦,只需要更新Mongoose模型。
如果有的话,还有什么更安全的方法呢?
示例用户JSON
{
'fname': 'Bill',
'lname': 'Williams',
'email': 'bill@billwilliams.com',
'settings': {
'strokeColor': '#FF0000'
}
}
从我的Angular服务
Update: function(my_user) {
return $http.put('http://api.domain.com/v1/api/users/' + _user.id, {
user: my_user,
token: window.localStorage['token']
});
}
Node中的我的REST端点
api.route('/users/:user_id')
.put(function(req, res) {
User.findById(req.params.user_id, function(err, user) {
userData = req.body.user;
if (user) {
//-- This is potential trouble area?
User.update({'_id': user._id}, {$set: userData});
user.save(function(err) {
res.json({
success: true,
message: 'User updated'
});
}); //-- end findById()
}); //-- end /users/:user_id put() route
看看Jsonwebtoken。
它基本上是这样工作的:
- 创建一个REST端点,让用户获取具有有效载荷(例如id)
- 使用Jsonwebtoken中间件保护api的相关部分(如果使用express作为Web服务器)
- 用户将令牌添加到每个请求标头(通过使用$httpInterceptor)
- 在请求到达API之前,在服务器端检查令牌
代币可能在一定时间后过期(当用户需要首先注册时很有用),这增加了额外的安全性。
相关文章:
- Mongoose-在更新中删除数组元素
- Mongoose更新ref对象
- 检查文档是否已经存在,如果是则更新,否则创建新的Mongoose
- Mongoose创建一个文档,如果找不到指定的字段,则更新文档中的数组
- 保存后更新Mongoose
- MongoDB Mongoose使用数组保存或更新
- 如何在Mongoose中从多个数组更新数组内部的值
- 为任何更新查询增加 Mongoose 文档版本的简单方法
- 正在更新数据库中的对象?(Node.js w/Mongoose)
- 在Mongoose中更新子域数组而不获取父数组
- 使用Mongoose更新数组中的特定对象时出错
- Mongoose查找/更新子文档
- Mongoose更新子文档的子文档
- 更新一个实时的mongoose js应用程序
- 如何只更新Mongoose更改的作用域值
- 在NodeJS中使用Mongoose+Mockgoose更新时忽略了唯一索引
- Mongoose不发送更新后的结果
- 通过REST端点用JSON对象更新Mongoose架构
- 使用动态字段名称更新Mongoose Model.update
- 更新Mongoose中非常嵌套的文档