Вам необходимо указать идентификатор другого пользователя в содержимом запроса, в Express это может быть легко достигнуто с помощью параметра пути :
// Example client request: PUT /edit/507f191e810c19729de860ea
router.put('/edit/:userId', checkAuth, function (req, res, next) {
if (req.userData.role === 'superadmin') {
const id = req.params.userId;
User.findOneAndUpdate({ _id: id }, {$set: req.body}, ...);
} else { /* ... */ }
});
При изменении пути запроса (/edit
) не подходит для вас, вместо этого вы можете указать идентификатор целевого пользователя через тело запроса (вам также потребуется обновить запрос клиента, чтобы передать этот id
вместе с вашими новыми данными пользователя):
router.put('/edit', checkAuth, function (req, res, next) {
if (req.userData.role === 'superadmin') {
const { id, ...newUserData } = req.body;
User.findOneAndUpdate({ _id: id }, {$set: newUserData}, ...);
} else { /* ... */ }
});