我正在从请求(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);
}
});