【问题标题】:How to get BreezeJS to talk to MySQL DB with Angular + Node?如何让 BreezeJS 使用 Angular + Node 与 MySQL DB 对话?
【发布时间】:2014-07-01 13:27:48
【问题描述】:

堆栈:MySQL + Express + Angular + Node 和 node-mysql 与数据库对话。

编辑:我正在连接到本地数据库并且连接正常。我无法让 Breeze 与之通信。

我正在尝试让 Breeze Todo 应用程序使用此设置,但当 Breeze 出去获取数据时,我收到了 localhost:3000/ToDos? 404 (Not Found)

我是否需要为 Breeze 创建 API 才能与之交谈?我试过这个:

angular.module('mysql', ['ngResource']).
factory('ToDos', function($resource) {
    var ToDos = $resource('/ToDos', {}, {update:{method:'PUT'}});

    return ToDos
});

然后将其注入到这里的datacontext服务中:

angular.module('mainApp').factory('datacontext', 
['$http', 'logger', 'breeze', 'ToDos', datacontext]);

function datacontext($http, logger) {

    var dataService = new breeze.DataService({
        serviceName: '/ToDos',
        hasServerMetadata: false
    });

    var manager = new breeze.EntityManager({
        dataService: dataService
    });
...
}

我对自己做错了什么感到很迷茫。任何帮助将不胜感激。

编辑: cmets 通知我需要创建后端 API。我正在努力,但可以使用一些帮助来转换 breeze-mongodb 模块。

在 Breeze 的 repository.js 中的 zza 示例中,调用了此模块的 MongoQuery()MongoSaveHandler() 函数。是否会像将它们转换为 MySQL connection.query 一样简单?非常感谢您对转换的任何帮助!

【问题讨论】:

  • 是的,您需要为 Breeze 创建服务器端 API 以与之对话。查看Zza-node-mongo 示例,了解如何在 Express 中设置服务器端路由。由于您使用的是 MySQL,因此您的存储库会有所不同,但其余部分可能相似。
  • 好吧,这就是我不确定的。我将添加所有app.VERB('/ToDos', function (req, res) { ... }; 代码,看看我是否可以让它工作。

标签: mysql node.js angularjs breeze


【解决方案1】:

我很好奇你在这方面的进展。雄心勃勃。

我相信你最终会写出类似"breeze-mongodb" npm module 的东西,它将有一个与 MySQL 相协调的查询和保存实现。

没有 ORM 可能会很棘手。如果您选择在 Node for MySQL (node-orm???) 中使用 ORM,您可以从 "breeze.net.server" repo on github 中的 ContextProviderContextProvider.EFContextProvider.NH 的 Breeze 源代码中了解很多有关如何操作的信息。您无需成为 C# 人员即可从该代码库中收集可转移的见解。

【讨论】:

  • 你会等一会儿...我在我的领域 ATM 外面。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-11-10
  • 2015-09-06
  • 2010-09-12
  • 1970-01-01
  • 1970-01-01
  • 2014-06-30
  • 2020-02-15
相关资源
最近更新 更多