我正在为此挠头。
我正在运行一个以 angularjs 作为前端资源的 expressjs 站点,我的问题是我已经设置了我的 API 来使用参数化查询来查询我的数据存储区。当我到达路线时,该参数没有出现在我的 angularjs 资源查询中,所以我最终只是通过 id 获取整个数据集而不是一个对象。
/api/index.js:
var _getSingleRequest = function(req, res, next)
{
models.Request
.findOne({'_id': req.body.id})
.exec(function(err, request){
if(err) return res.send(500, err);
if(!request) return res.send(404, new Error("Request not found"));
res.send(request);
});
};
...
return {
_getSingleRequest: getSingleRequest
}
/server.js
...
var api = require('./api');
app.get('/api/request/:id', api.getSingleRequest);
...
/public/js/controllers/controller.js
...
function Request($scope, $resource, $routeParams, Request)
{
$scope.request = Request.query({_id : $routeParams.id});
...
}
...
/public/js/services/services.js
services.Request = function($resource)
{
return $resource('/api/request/:id', {id:'@id'}, {'get': {method:'GET', isArray: true}});
}
安慰
Mongoose: requests.find({}) { fields: undefined, safe: undefined, sort: [ [ 'requestedDate', 1 ] ] }
GET /api/request?_id=51b8cc2a06859bd418000001 304 179ms
似乎获取请求正确通过,但在 Mongoose 查询中没有传递任何参数。
我犯了什么简单的错误,我可以发布哪些其他信息来帮助我弄清楚如何摆脱将头撞到墙上的无限循环?