javascript - 使用 Ember 和 Node.js 写入 MySQL 数据库

标签 javascript mysql node.js ember.js

我是 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 中的一个层,负责管理浏览器内存中的记录数据。 Pushing 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/

相关文章:

javascript - 查看文档是否绑定(bind)了按键?

javascript - 从js函数返回的数据未到达调用函数

Mysql 复制不工作

javascript - 如何阻止 Node.js 将数据打印到控制台?

node.js - 在远程服务器上开发 Node.js/React 应用程序,并在本地访问它

javascript - 在基于 require.js 的应用程序的 r.js 构建中手动设置区域设置不起作用

javascript - JQuery UI Sortable - 将 html 可排序元素的拖动区域限制为特定子元素

php - 使用 mysql_real_escape_string 的速度

mysql - 如何使用sql获取同一个表中的列总和然后2个表之间的差异

javascript - 无法将选项传递给 Commander.js 中的命令