我正在構建一個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/ $資源
什麼是'postData'以及POST中實際發送的內容?您可以在瀏覽器的網絡標籤中看到。 –
DOH ...路線有函數(req,req)而不是函數(req,res)。這導致了非常糟糕的事情發生。更正解決了我所有的問題。 –
啊,所以它。太糟糕了V8並沒有提醒你: -/ –