更新用户信息
Update user information
尝试更新用户信息,只有 phone 个数字,但没有更新。
router.post('/edit', checkAuth, function (req, res, next) {
console.log(req.userData.userId)
User.update({_id: req.userData.userId}, {$set:req.userData.phoneNo}, function (err){
if (err) {
console.log(err);
}
res.status(200).send(req.userData);
});
});
我的用户控制器 const mongoose = require ('mongoose');
const User = mongoose.model('User');
module.exports.register = (req, res, next) =>{
var user = new User();
user.fullName = req.body.fullName;
user.email = req.body.email;
user.password = req.body.password;
user.phoneNumber = req.body.phoneNumber;
user.save((err, doc) =>{
if(!err)
res.send(doc);
else{
if (err.code == 11000)
res.status(422).send(["Entered duplicate email address. Please check"]);
else
return next(err);
}
});
}
然后我通过在此字段上传递 jwt 进行身份验证
phoneNo: user[0].phoneNumber
auth-token 验证和解码字段
const token = req.headers.authorization.split(" ")[1];
const decoded = jwt.verify(token, process.env.JWT_KEY)
req.userData = decoded;
更新无效并收到错误消息 Invalid atomic update value for $set. Expected an object, received string
。
您的代码
User.update({_id: req.userData.userId}, {$set:req.userData.phoneNo}
正确代码:
User.update({_id: req.userData.userId}, {$set:{phoneNumber:req.userData.phoneNo}}
试试这个方法:
User.findByIdAndUpdate(req.userData.userId, { $set:{phoneNumber:req.userData.phoneNo}}, { new: true }, function (err, user) {
if (err) console.log(err);
res.send(user);
});
首先,您应该使用 PATCH
方法 - 因为您只更新现有对象中的一个项目,在 body
中您应该发送 id
用户和新值具有一定的价值。如果你使用 mongoose
你可以试试
User.findOneAndUpdate({ _id: id }, updatedItem, { new: true }, (err, doc) => {
if (err) return res.send(err.message)
if (doc) return res.send(doc);
})
const id = req.body._id;
,如果你不使用猫鼬,你应该尝试findAndModify
方法
尝试更新用户信息,只有 phone 个数字,但没有更新。
router.post('/edit', checkAuth, function (req, res, next) {
console.log(req.userData.userId)
User.update({_id: req.userData.userId}, {$set:req.userData.phoneNo}, function (err){
if (err) {
console.log(err);
}
res.status(200).send(req.userData);
});
});
我的用户控制器 const mongoose = require ('mongoose');
const User = mongoose.model('User');
module.exports.register = (req, res, next) =>{
var user = new User();
user.fullName = req.body.fullName;
user.email = req.body.email;
user.password = req.body.password;
user.phoneNumber = req.body.phoneNumber;
user.save((err, doc) =>{
if(!err)
res.send(doc);
else{
if (err.code == 11000)
res.status(422).send(["Entered duplicate email address. Please check"]);
else
return next(err);
}
});
}
然后我通过在此字段上传递 jwt 进行身份验证
phoneNo: user[0].phoneNumber
auth-token 验证和解码字段
const token = req.headers.authorization.split(" ")[1];
const decoded = jwt.verify(token, process.env.JWT_KEY)
req.userData = decoded;
更新无效并收到错误消息 Invalid atomic update value for $set. Expected an object, received string
。
您的代码
User.update({_id: req.userData.userId}, {$set:req.userData.phoneNo}
正确代码:
User.update({_id: req.userData.userId}, {$set:{phoneNumber:req.userData.phoneNo}}
试试这个方法:
User.findByIdAndUpdate(req.userData.userId, { $set:{phoneNumber:req.userData.phoneNo}}, { new: true }, function (err, user) {
if (err) console.log(err);
res.send(user);
});
首先,您应该使用 PATCH
方法 - 因为您只更新现有对象中的一个项目,在 body
中您应该发送 id
用户和新值具有一定的价值。如果你使用 mongoose
你可以试试
User.findOneAndUpdate({ _id: id }, updatedItem, { new: true }, (err, doc) => {
if (err) return res.send(err.message)
if (doc) return res.send(doc);
})
const id = req.body._id;
,如果你不使用猫鼬,你应该尝试findAndModify
方法