2014-04-20 21 views
0

我正在構建一個AngularJS和NodeJS/Express應用程序。角度資源行爲導致節點/ express中嵌套req

所有AngularJS資源都按預期運行,除了我添加的自定義操作導致req.params和req.body在Express中未定義。相反,我發現這些對象嵌套在req下,如req.req.params和req.req.body,這是我期望的req.params和req.body的值。我相信AngularJS自定義操作會導致req被嵌套。爲什麼會發生這種情況,我可以做些什麼來「unnest」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'); 
}; 

在節點的路由/快遞:

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/ $資源

+0

什麼是'postData'以及POST中實際發送的內容?您可以在瀏覽器的網絡標籤中看到。 –

+0

DOH ...路線有函數(req,req)而不是函數(req,res)。這導致了非常糟糕的事情發生。更正解決了我所有的問題。 –

+0

啊,所以它。太糟糕了V8並沒有提醒你: -/ –

回答

1

愚蠢的編程錯誤...

路線有function(req, req)而不是function(req, res)。這導致了非常糟糕的事情發生。更正解決了我所有的問題。

+0

超級怪異,但我有完全相同的問題,甚至下降到$角度資源調用。同樣的解:p哈! – Askdesigners