基于路由删除 MongoDB 中对象的推荐方法

Recommended way to delete object in MongoDB based on a route

MEAN 堆栈开发的新手,但很喜欢它!我想以一种不基于意见的方式提出这个问题,所以请原谅我。

假设我有一个管理仪表板,其中列出了 MongoDB 集合中的对象。每个项目都有一个删除按钮,其中包含此方案的 href:href="/admin/ministry/delete/:id" 其中 :id 是数据库中要删除的对象的 ID。

现在我有一个路由设置,可以成功地将请求路由到控制器,但我想知道这是否是删除对象的最佳方式。例如,一旦我单击某个对象的删除按钮,它就会被删除并且我们返回到仪表板,但是 URL 仍然是这样的:http://localhost:3000/admin/ministry/delete/554b88546d280ab11603b062

所以基本上我的问题是,当涉及到从数据库中删除对象时,您对我的路由和控制器有什么建议。

路由器

var admin_ministry_controller = require('./controllers/admin/ministry_controller.js');
app.get('/admin/ministry/delete/:id', ministry_controller.delete);

控制器

var mongoose = require('mongoose');
var Ministry = mongoose.model("Ministry");

exports.delete = function(req, res) {
    Ministry.findOne({_id:req.params.id}).exec(function(err, ministry){
        if(ministry) {
           ministry.remove();
        }

        var query = Ministry.find();
        query.exec(function(err, doc) {
            res.render('admin/ministry', {title: 'Next Steps | Ministry', msg: "Deleted Ministry", ministries: doc});
        });

    });
}

我建议您使用 RESTful API 结构。看看 API 会是什么样子:

对于您的情况,要删除 ministry,用户应向 /api/admin/ministry/:id 发送 DELETE 请求。

路由器应该是这样的:

app.delete('/admin/ministry/:id', ministry_controller.delete);