无法使用Node.js从mongoDB删除或获取单个用户



我正在从请求(URL)的id中获取用户的电子邮件,并试图删除/获取此各自电子邮件id的用户。基本上email是用户的id (email对所有用户都是唯一的)。用户没有被删除,对于get请求,我得到的是null。

Delete by Id code:

router.delete("/:id", async(req, res) => {
try{
console.log(req.params.id);
var query = {email:req.params.id}
const user = await User.deleteOne(query);
console.log(user);
res.status(200).json("User has been deleted...");
}catch(err){
res.status(404).json("User not found!");
}
});

Get user by id:

router.get("/:id", async(req, res) => {
try{
const email = req.params.id;
console.log(email);
const user = await User.find({email:req.params.id})
res.status(200).json(user[0]); 
}
catch(err){
res.status(500).json(err);
}
});

如果我使用静态电子邮件来获取单个用户,我将得到正确的输出,但变量没有输出。

静态的例子:const user = await User.find({email:'sita@gmail.com'})

如果您想通过电子邮件id或姓名等获取

我建议使用查询参数

例如

For Delete:

router.delete("/", async(req, res) => {
try{
var query = {email:req.query.email}
const user = await User.deleteOne(query);
res.status(200).json("User has been deleted...");
}catch(err){
res.status(404).json("User not found!");
}
});

For Fetch

单文件使用:findOne

多文档使用:find

router.get("/", async(req, res) => {
try{
const user = await User.findOne({email:req.query.email})
res.status(200).json(user); 
}
catch(err){
res.status(500).json(err);
}
});

相关内容

  • 没有找到相关文章

最新更新