【发布时间】: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