我是 Ember.js 的新手,我对一些事情感到困惑。我真正的问题是使用 MySQL 和 ember-data。我已经完成了一些教程并找到了这个 youtube很有用。此时,我可以创建一个在 Node.js 服务器上运行的应用程序。 Node 服务器与 mysql 数据库通信并创建 ember 应用程序使用的 RESTful API。我从 mysql 数据库中获取数据并显示它没有问题。但是我不知道如何在 MySQL 数据库中保存或更新数据。我隐约明白‘商店’的概念,可以把东西推进去展示,但仅此而已。有没有关于如何使用 ember-data 和 Node.js 编写或更新 mysql 数据库的示例?
编辑:这个问题实际上是在询问 ember-mysql 应用程序的结构以及其他人在生产环境中的作用。
这是在 routes/message.js 中推送到商店的示例
import Ember from 'ember';
export default Ember.Route.extend({
model() {
var self = this;
setTimeout(function(){
console.log("done waiting...")
self.store.push({
data: [{
id: 11,
type: 'message',
attributes: {
message: 'New Message'
},
relationships: {}
}]
});
},1000);
return self.store.findAll('message');
}
});
最佳答案
从 ember-data 的 Angular 来看,使用 mysql 或任何其他数据库引擎并不重要。 Ember-data 仅与 API 通信 - RESTful JSON API默认情况下。
因此,您的应用程序的 node.js 部分应该实现用于读取和保存数据的端点。然而,从头开始编写这个 API 是一种浪费,如果你使用一个框架,它会容易得多 - 如果你想坚持使用 node.js,请查看 Sails.js ,如果没有,给Ruby on Rails一试。
在这两个框架中,生成 ember-data 可以使用的有效 RESTful API 都非常简单。
至于您的代码示例:Store
是 ember-data 中的一个层,负责管理浏览器内存中的记录数据。 Push
ing to Store
只会将记录添加到内存(从技术上讲,当您从API)。
为了保存模型,只需调用 model.save()
发送一个 POST
(创建时)或一个 PUT
(更新时)对 API 的请求 - 至少使用默认的 JSON API Adapter
。 (适配器
是理解您的 API 如何工作并与之通信的层。)
如果您只是构建原型(prototype),请提供 Firebase试一试 - 这基本上是您的 JavaScrip 应用程序的现成后端。您可以完全放弃 node.js 部分 - 至少目前是这样。
关于javascript - 使用 Ember 和 Node.js 写入 MySQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41754865/