Nodejs休息路由格式冲突

时间:2017-11-03 02:47:10

标签: node.js express

我正在开发一个Nodejs + Express项目并遇到这种情况:

这是我的控制器:

app.use('/user', router);

/* 
    GET: /user
*/
router.route('/:page?/:limit?')
    .get(function(req, res) {
        responseUtil.sendResponse(service.allRecords(req), req, res);
    });

/* 
    POST: /user
*/
router.route('/')
    .post(function(req, res) {
        responseUtil.sendResponse(service.saveRecord(req), req, res);
    });
/*
    GET: /user/1
    PUT: /user/1
    DELETE: /user/1
*/
router.route('/:id')
    .get(function(req, res) {
        responseUtil.sendResponse(service.findRecord(req), req, res);
    })
    .delete(function(req, res) {
        responseUtil.sendResponse(service.deleteRecord(req), req, res);
    })
    .put(function(req, res) {
        responseUtil.sendResponse(service.updateRecord(req), req, res);
    });

问题是以下路线存在冲突:

/:page?/:limit?

/:id

由于页面和限制是可选的,因此有以下几种可能性:

/user       (all users)
/user/1     (by id)
/user/1/10  (page and limit)
/user/1     (by page)

如何解决这个问题?我在API命名约定中遗漏了什么吗?

1 个答案:

答案 0 :(得分:0)

您可以使用

  • aggregate: [ { field: "owing", aggregate: "sum" } ], (查询参数)

  • { field: "owing", title: "Total Price", footerTemplate: "Total Amount: #=sum#" } (将网址分开)

相关问题