Ember.js模型保存不向服务器发送数据
Ember.js model save sends no data to server
我目前正在使用Ember.JS和NodeJS with Express构建一个小型演示应用程序。我已经建立了一个简单的模型,并创建了一个操作来保存它。
该组件有一个名为recipe
的属性,它是我定义的模型的一个实例。保存操作简单如下:
save() {
this.get('recipe').save();
}
在Chrome开发工具中查看我的网络选项卡,我可以看到请求负载中的数据。但是,我无法访问Node应用程序中的数据。我已经记录了完整的req
对象,但我的数据不在那里。
我有一种感觉,这与Ember使用PATCH动词有关,而我希望它使用PUT或POST。
非常感谢您的帮助。
免责声明:如果没有看到代码,很难给你一个明确的答案
JSON API规范定义了使用PATCH谓词来更新资源。(http://jsonapi.org/format/#crud-更新)
如果您选择使用此适配器,则必须在Express应用程序中定义适当的路由。在没有看到它的情况下,我建议用相同的回调定义PUT和PATCH的路由,这样就可以了。
例如:
router.put('/:id', controller.update);
router.patch('/:id', controller.update);
目前,在适配器中重写HTTP谓词并不容易(Ember Data 2.4)。一个可能的方法是重写适配器的updateRecord
方法。(https://github.com/emberjs/data/blob/v2.4.0/addon/adapters/json-api.js#L115-L133)
免责声明:如果没有看到代码,很难给你一个明确的答案
由于未正确设置'Content-Type'
标头,您没有收到请求负载。
Ember的JSONAPIAdapter
发送具有设置为'application/vnd.api+json'
的'Content-Type'
报头的请求。你需要在body-parser
中这样设置:
app.use(bodyParser.json({ type: 'application/vnd.api+json' }));
最后,我使用DS.RESTAdapter
而不是DS.JSONAPIAdapter
解决了这个问题。保存记录时,RESTAdapter
使用PUT
,而JSONAPIAdapter
使用PATCH
。我怀疑在Ember或Express中实现PATCH
时存在一些问题。
- Jquery append()概要文件(使用$.getJSON的服务器数据)
- 在网页上显示实时服务器数据
- 如何将Node.js服务器数据发送到Javascript客户端
- 主干.js当服务器数据为空时 model.fetch
- 节点.js游戏开发,客户端-服务器数据交换逻辑
- 如何访问单独js文件中的服务器数据
- 如何通过javascript函数在jade模板中使用服务器数据
- 主干模型未使用服务器数据更新
- Durandal/Knockout-在绑定之前从服务器数据创建viewModel
- 掩码客户端到服务器数据hybi 17
- 客户端是否有办法在套接字断开连接时发送服务器数据?
- 在我的ember应用程序中获取本地json服务器数据
- AngularJS:在页面加载时用服务器数据改变输入值
- 包含服务器数据的Ng表
- Knockout JS使用javascript类型从服务器数据初始化可观察数组
- 来自服务器数据的动态路由
- 如何在网站上实时加载服务器数据
- 将服务器数据传递给 RequireJS 模块的首选方法是什么?
- Nodejs将服务器数据传递给套接字
- 如何将html视图数据或(Python)服务器数据传输到Angular或Javascript