Node.js Monggose/Angular/Node:route with deleteOne方法一直说对象已删除,但deletecount为零
我看过其他关于这个问题的帖子,但我无法调整他们的解决方案来解决我的问题:我有一个使用mongoose的小程序。当我尝试删除集合中存储的用户或其他对象时,会出现此问题。路由工作正常,我没有收到任何错误,但对象不会被删除,我也不明白。我已经一次又一次地重新安装了mongoose,尝试了其他方法,比如Node.js Monggose/Angular/Node:route with deleteOne方法一直说对象已删除,但deletecount为零,node.js,angular,mongoose,mean-stack,Node.js,Angular,Mongoose,Mean Stack,我看过其他关于这个问题的帖子,但我无法调整他们的解决方案来解决我的问题:我有一个使用mongoose的小程序。当我尝试删除集合中存储的用户或其他对象时,会出现此问题。路由工作正常,我没有收到任何错误,但对象不会被删除,我也不明白。我已经一次又一次地重新安装了mongoose,尝试了其他方法,比如findbyianddelete,但是什么都没有……有人能帮我解决这个问题吗? 以下是相关代码: 模型文件: const mongoose = require('mongoose'); const mo
findbyianddelete
,但是什么都没有……有人能帮我解决这个问题吗?
以下是相关代码:
模型文件:
const mongoose = require('mongoose');
const movieSchema = mongoose.Schema({
name: {
type: String,
index:true,
required: true
},
rate: {
type: String,
required: true
}
});
module.exports = mongoose.model('Movie', movieSchema);
模型路线:
router.delete("/:id", (req, res, next) => {
Movie.deleteOne({
_id: req.params._id
}).then(result => {
res.status(200).json({
message: "Movie deleted!",
movie:result
});
});
});
电影服务(角度)
电影组件
deleteMovie(id){
this.movieService.deleteMovie(id).subscribe(data=>{
console.log(data)
this.movieService.getStoredMovies();
})
}
HTML:
-
{{movie.name}
删除后来自后端的消息:
获取对象方法的日志
问题出在您的
模型路线中
特别是\u id:req.params.\u id
根据你的路线
router.delete("/:id", (req, res, next) => { })
您正在接收id
而不是\u id
因此,您必须从如下参数中获取id
\u id:req.params.id
你的最终结果是这样的
router.delete("/:id", (req, res, next) => {
Movie.deleteOne({
_id: req.params.id
}).then(result => {
res.status(200).json({
message: "Movie deleted!",
movie:result
});
});
});
<ul *ngFor="let movie of storedMovies | unique; let i=index">
<li *ngIf="i<=10 " (click)="deleteMovie(movie._id)">
{{movie.name}}
</li>
</ul>
更新
我还查看了您的HTML
,发现您正在(单击)
上传递整个电影
对象。但是删除电影(id)
只需要id
,所以你必须像这样更新你的HTML
router.delete("/:id", (req, res, next) => {
Movie.deleteOne({
_id: req.params.id
}).then(result => {
res.status(200).json({
message: "Movie deleted!",
movie:result
});
});
});
<ul *ngFor="let movie of storedMovies | unique; let i=index">
<li *ngIf="i<=10 " (click)="deleteMovie(movie._id)">
{{movie.name}}
</li>
</ul>
-
{{movie.name}