我有一个名为'user'的集合,其中包含1个文档:
{
"username": "test1",
"password": "pw1",
"id": "1"
}
我创建了一个Foxx应用程序,并尝试按照文档(使用2.6.0a3)。这是我的控制者:
var Foxx = require('org/arangodb/foxx'),
usersCollection = applicationContext.collection("user");
var usersRepo = Foxx.Repository.extend({
getAll: Foxx.createQuery(
'FOR u IN user RETURN u'
)
});
var controller = new Foxx.Controller(applicationContext);
controller.get('/', function (req, res) {
res.json(usersRepo.getAll());
});
我得到:
{"error":"undefined is not a function"}
而不是记录列表。
我错过了什么?
答案 0 :(得分:3)
据我所知,对Foxx.Repository.extend()
的调用不会实现可用的Repository对象,而是“原型”:
var UsersRepo = Foxx.Repository.extend({
getAll: Foxx.createQuery(
'FOR u IN user RETURN u'
)
});
似乎缺少的是具体的对象实例:
var usersRepo = new UsersRepo("user");
然后,该实例可用于调用预定义函数:
controller.get('/', function (req, res) {
res.json(usersRepo.getAll());
});
在上面的代码中,我在一个名为UsersRepo
的变量(大写 U )中的原型和变量usersRepo
中的存储库对象实例(lower-案例 u )。