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
});
我的问题是我在 model
和 collection
中都定义了 url
属性。您应该只在 collection
中定义 url
。愚蠢的错误。
假设您有一个带有 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
});
我的问题是我在 model
和 collection
中都定义了 url
属性。您应该只在 collection
中定义 url
。愚蠢的错误。