我正在构建一个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/ $资源
答案 0 :(得分:1)
愚蠢的编程错误......
该路线有function(req, req)
而不是function(req, res)
。这导致了非常糟糕的事情发生。纠正这解决了我的所有问题。