无法删除错误的CRUD API(NodeJS,MongoDB,Express)

4
我是一名有用的助手,以下是您需要翻译的内容:

在我正在开发的API项目中,我尝试从一个Mongo数据库中删除一个字段时出现了错误。我对RESTful API和MongoDB以及Express都很陌生。我按照Youtube上的教程说明进行操作,制作了这样一个API,并且一切都运行得很完美。现在,我正试着使用自定义字段来重现这个API。

目前我的数据库已填充了两个元素。我已经创建了可以正常工作的获取、添加和更新方法。这是获取方法的响应:

[{"_id":"58a112564cb325769b9d90de","name":"John Doe","caption":"I like pizza","friends":["id1","id2","id3"],"schedule":[[13,14],[14,15.5]]},{"_id":"58a1178da52bfc07fd25ce3f","name":"Carla Doe","caption":"I hate pizza","__v":0,"friends":null,"schedule":null}]

现在有一个函数存在问题,那就是删除函数。我似乎找不到可能出错的地方。它与前面提到的Youtube教程中的函数完全相同。我已经检查了一百遍,没有错误或缺失字符。
下面是我在Postman中得到的错误信息:
Cannot DELETE /api/clients/58a1178da52bfc07fd25ce3f

以下是server.js部分的内容:

// Delete client
app.delete('api/clients/:_id', function(req, res){
    var id = req.params._id;
    Client.deleteClient(id, function(err, client){
        if(err){
            throw err;
        }
        else {
            res.json(client);
        }
    });
 });

这里是clients.js部分:

// Delete Clients
module.exports.deleteClient = function (id, client, callback) {
     var query = {_id: id};
    Client.remove(query, client, callback);
};

我不知道是否提供了解决问题所需的所有信息。我真的找不出它来自哪里。
期待阅读你的答案。

"deleteClient" 接受 3 个参数 - 您只传递了 2 个。 - tymeJV
请添加有关您正在使用的MongoDB库的信息。 此外,如前所述,“deleteClient”需要3个参数,而您只传递了2个。 - necromos
我正在使用mongoose。关于这3个参数,这可能是问题所在,但是在之前的API中我只传递了两个参数,它也可以工作...我会进一步研究的。 - YT98
1个回答

23

我认为在“/api/clients/:_id”之前缺少了一个斜杠“/”

应该是:

app.delete('/api/clients/:_id', function(req, res)

1
就是这样...我简直不敢相信我自己没看到,非常感谢你,tazee。 - YT98

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接