Backbone - 在后端接收DELETE数据

Backbone - receiving DELETE data in the back end

假设您有一个带有 id 的模型,并且您想要在数据库中删除它。因此,您在该模型上调用 destroy() 方法(如下面的代码示例)。它发送一个 OPTIONS HTTP 请求,然后是一个 DELETE HTTP 请求。我的问题是,当我在服务器端很好地捕获 DELETE 请求时,我找不到任何信息告诉我模型 id 是什么——它不是请求中的参数,而是不在 URL。我如何找到这些信息?我在存储代码的存储库的文档 here. Here is a link 中看不到它。

  removeElement: function() {
    // DELETE in DB
    this.model.destroy();
    this.remove();
    this.unbind();
  },

我期望的是 HTTP 请求会有一个像 { 'id': 42319 } 或类似的参数。

您可能需要设置模型 ID 属性。 Backbone在客户端自动设置的id是cid,不是id。请注意,使用不同唯一键(如 MongoDB)的数据库的常见陷阱不是从该键映射到 ID as described in the docs

例如:

var Model = Backbone.Model.extend({
    idAttribute: "_id"
    //other model setup code
});

我的问题是我在 modelcollection 中都定义了 url 属性。您应该只在 collection 中定义 url。愚蠢的错误。