Angular资源操作导致node / express中的嵌套req

时间:2014-04-20 00:02:32

标签: node.js angularjs express angular-resource

我正在构建一个AngularJS和NodeJS / Express应用程序。

除了我添加的自定义操作之外,所有AngularJS资源都按预期运行,导致req.params和Express中的req.body未定义。相反,我发现这些对象嵌套在req下,如req.req.params和req.req.body,这些是我在req.params和req.body中所期望的值。我相信AngularJS自定义操作导致req嵌套。为什么会发生这种情况,我可以做些什么来“免除”req?

AngularJS资源声明(addUser是问题子):

.factory('Account', function($resource){
  return $resource('/api/account/:id', null, {
    'update': { method: 'PUT' },
    'addUser': { 
      method: 'POST',
      url: '/api/account/:id/addUser' 
    } 
  });
})

如何调用addUser:

Account.addUser({ id: accountId }, postData, function(){
  console.log('success');
};

node / express中的路由:

app.post('/api/account/:id/addUser', function(req, req) {
  console.log(req.params, req.body);           // results in...  undefined, undefined
  console.log(req.req.params, req.req.body);   // results in values as expected of req.params and req.body
});

我已阅读并重新阅读以下网址的自定义操作,但看不到我做错了什么。 https://docs.angularjs.org/api/ngResource/service/ $资源

1 个答案:

答案 0 :(得分:1)

愚蠢的编程错误......

该路线有function(req, req)而不是function(req, res)。这导致了非常糟糕的事情发生。纠正这解决了我的所有问题。