Expressjs从angularjs路由路由

时间:2016-03-20 21:35:46

标签: angularjs express

我遇到从前端到后端调用路由的问题。

我在客户端使用angularjs $ state,所以示例url是

http://localhost:1234/areas/customer/edit/56e2f6345968f8b812052694

然而,当我使用$ resouce查询在服务器端调用此路由时,它会调用错误的服务器端路由。

我的工厂包含一个使用$ resource调用服务器端的方法

 getCustomerByID: function(id, callback){
          var cb = callback || angular.noop;

          return Customer.query(id, function(success){
            return cb(success);
          }, function(error){
            return cb(error);
          }).$promise;
        }

客户是以下服务

angular.module('xxx')
  .factory('Customer', function ($resource) {
    return $resource('/api/customer/:id/:controller', { id: '@_id' })
  });

GET的服务器路由如下

router.get('/', controller.index);
router.get('/:id', controller.show);

我需要使用id命中路线,但它似乎击中了第一个

任何想法可能是什么

干杯

1 个答案:

答案 0 :(得分:0)

按顺序处理路线,交换以下路线:

router.get('/', controller.index);
router.get('/:id', controller.show);

对此:

router.get('/:id', controller.show);
router.get('/', controller.index);

这是因为像/api/customer/:id/这样的请求也会匹配/api/customer,因此它会捕获第一条路线。