【发布时间】:2021-04-04 00:01:51
【问题描述】:
我正在创建一个删除除当前登录用户之外的所有用户的调用。
这是我的代码;
exports.deletealluser = async (req, res) => {
try {
const { sub } = req.user;
const usersExceptCurrent = await User.find({ _id: !sub });
const deletedUsers = await User.deleteMany(usersExceptCurrent);
res.status(201).json({
message: 'A all user is successfully deleted!',
deletedUsers,
});
} catch (err) {
return res.status(400).json({
message: 'Something went wrong.',
});
}
};
sub 是当前用户的id。如您所见,我首先调用 find 查询来过滤不等于 sub 的数据。然后我使用 usersExceptCurrent 作为我的 deleteMany 查询的过滤器。
但它返回状态 400
这是我的 axios 调用;
const onDelete = async () => {
try {
const { data } = await fetchContext.authAxios.delete(
'admin/delete-all-users'
);
fetchContext.setUserList(
fetchContext.userList.filter((row) => row === data.deletedUsers)
);
setSignupSuccess(data.message);
setSignupError('');
setOpen(false);
setOpenAlert(false);
} catch (err) {
setIsLoaded(true);
setError(err);
const { data } = err.response;
setSignupError(data.message);
setSignupSuccess('');
}
};
【问题讨论】:
-
尝试注销
usersExceptCurrent。它是否给出了预期的结果?
标签: node.js reactjs mongodb express mongoose