我正在尝试使用MongoDB和JWT更新用户信息



当我使用此代码尝试更新用户时,它显示为服务器错误。我使用JWT和mongodb,但不确定我是提取令牌还是id来更新用户信息。下面是我的控制器代码和我的模式。

const updateUser = async (req, res) => {

try {

const user = await User.findByIdAndUpdate(req.user.id)
if(!user) return res.status(400).send({ error: 'User not found'})
Object.assign(user, req.body);
user.save()
res.send({ data: user})

} catch (error) {
res.status(500).send({error: 'Server Error'})
}
}

const mongoose = require('mongoose');
let userSchema = new mongoose.Schema({
name: { type: String, required: true},
email: { type: String, required: true, unique: true},
password: { type: String, required: true},
date: { type: Date, default: Date.now}
})
module.exports = mongoose.model('user', userSchema)

更新了更新功能,但我似乎有一个错误

const updateUser = async (req, res) => {
try {

const updatedUser = await User.findByIdAndUpdate(req.params.id,req.body)
if(!updatedUser) return res.status(400).send('User cannot be updated!')
res.json(updatedUser)

} catch (error) {
res.status(500).send({error: 'Server Error'})
}
}

试试这个:

//update user by id
exports.updateUser = async (req, res) => {
try {

const updatedUser = await 
<--req.params.id is the user.id and req.body contains the requested fields to update -->
User.findByIdAndUpdate(req.params.id,req.body) 
res.json(updatedUser);
}
catch (err) {
console.log(err);
res.status(500).json({ message: 'Internal server error' });
}
}

最新更新