我正在使用Admin on Rest为我的其余通话创建一个仪表板。 电话正在通过,我在控制台中查看了电话。
GET / api / v2 / admin / user?_end = 10& _order = DESC& _sort = id& _start = 0 200 61.102 ms - 2846
但它没有返回任何内容,我认为是因为Mongo不接受_end,_order,_start的查询,以及它使用_id而不是id。 对此最好的解决方法是什么?因为我无法修改进入的电话。
端点的逻辑如下。我(也没有想象)尝试手动创建排序选项,但我觉得这样做效率不高。
// routes/admin/user.js
var express = require('express'),
router = express.Router();
var User = require(__models + 'user');
router.route('/')
.get(function(req, res, next){
var query = req.query || {};
User.find(query).then(users => {
return res.json(users);
}).catch(err => next(err));
});
module.exports = router;
答案 0 :(得分:1)
您需要编写自己的REST客户端,以便以REST API理解的格式创建查询。
https://marmelab.com/admin-on-rest/RestClients.html#writing-your-own-rest-client
答案 1 :(得分:0)
我为我创建了一个util函数。
module.exports.getJsonFromUrl = function(query) {
var result = {};
query.split("&").forEach(function(part) {
var item = part.split("=");
result[item[0]] = decodeURIComponent(item[1]);
});
return result;
};
我从控制器这样调用它
var query = routeUtil.getJsonFromUrl(req._parsedUrl.query);