骨干model.save()不使用body parser设置express服务器的响应主体

我正在尝试使用model.save()保存(后)一个Backbone模型。

模型:

Backbone.Model.extend({ urlRoot: '/project/', defaults: { projectname: "default projectname" } }); 

保存模型(在我的Backbone.router对象中):

 putTest: function(id) { var projectItem = new ProjectModel({projectname: "This shiny new project"}); projectItem.save(); }, 

我希望服务器上使用中间件“body-parser”的服务器上的节点/快速路由器可以在express request.body对象上获取模型的属性,如下所示:

 post: function(request, response) { console.log(request.body.projectname); } 

但是response.body对象是空的。

当我使用method =“post”的常规html表单时,就像这样:

 <form id = "createProject" action = "/project/" method = "post" > <input type="text" name="projectName" value="Project name" /> </form> 

一切都按预期工作。

我一整天都在拼命挣扎,看不出自己做错了什么。

我误解了整个Backbone.model.save()概念,还是在保存时,在express请求对象上有另一个对象来保存我的Backbone模型的属性?

默认情况下,一个HTML <form>发送application/x-www-form-urlencoded数据,而不是像Backbone.sync()那样的JSON .save()内部由.save()使用)。

打开浏览器的开发人员工具,并在保存模型时查看networking分析,以确保请求正常工作(JSON正文,URL,…)。

但是,由于您的后端可以正确处理表单数据,我猜你的中间件没有按照你想要的方式进行configuration。