我目前正在使用带有 Express 的 Ember.JS 和 NodeJS 构建一个小型演示应用程序。我构建了一个简单的模型并创建了一个 Action 来保存它。
该组件有一个名为recipe
的属性,它是我定义的模型的一个实例。保存操作非常简单:
save() {
this.get('recipe').save();
}
在 Chrome 开发工具中查看我的网络选项卡,我可以看到请求负载中的数据。但是,我无法访问我的 Node 应用程序中的数据。我已经记录了完整的 req
对象,但我的数据不在任何地方。
我觉得这与 Ember 使用 PATCH 动词这一事实有关,而我希望它使用 PUT 或 POST。
非常感谢任何帮助。
最佳答案
免责声明:如果没有看到代码,很难给您一个明确的答案。
JSON API 规范定义,更新资源是使用 PATCH 动词完成的。 ( http://jsonapi.org/format/#crud-updating )
如果您选择使用此适配器,则必须在您的 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 )
关于javascript - Ember.js 模型保存不向服务器发送数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36387355/