【发布时间】:2015-03-11 22:16:32
【问题描述】:
所以我是 Angular 的新手,我已经查看了各种其他解决方案,但似乎没有一个适合我。我的应用程序需要从 mongodb 数据库中获取一些数据并将其显示给客户端。问题是我得到了
错误:[$resource:badcfg] 操作
query的资源配置错误。预期的响应包含一个数组但得到一个对象
这是客户端上的 SchoolCtrl.js
app.controller('SchoolsCtrl', function($scope, SchoolResource) {
$scope.schools = SchoolResource.query();
});
这是我的 ngResource
app.factory('SchoolResource', function($resource) {
var SchoolResource = $resource('/api/schools/:id', {id: '@id'}, { update: {method: 'PUT', isArray: false}});
return SchoolResource;
});
这是我在服务器上的 SchoolsController
var School = require('mongoose').model('School');
module.exports.getAllSchools = function(req, res, next) {
School.find({}).exec(function(err, collection) {
if(err) {
console.log('Schools could not be loaded: ' + err);
}
res.send(collection);
})
};
我尝试添加 IsArray: true,尝试在资源中的“SchoolResource”之后添加 [],尝试更改路线,但没有任何效果。我想看看实际返回了什么,抱怨的查询不是数组,所以我把它变成了字符串,结果如下:
function Resource(value) { shallowClearAndCopy(value || {}, this); }
我不知道为什么它会返回一个函数。谁能帮帮我?
【问题讨论】:
-
调用函数 (
function()) 来获取你的数组。 -
你能告诉我哪个函数吗?我尝试了资源,尝试了控制器(虽然我不知道如果我在获取数据之前调用控制器会起作用),但它不起作用。
标签: javascript angularjs node.js mongodb single-page-application