使用带有AngularJs POST请求的expressJs无法访问POST参数

时间:2015-02-07 12:54:55

标签: angularjs rest post express body-parser

当我使用angular进行发布请求时,我无法访问我的帖子参数,这是我的角度代码:

var request = $http({
                method: 'POST',
                url: '/api/login',
                data: {
                    login: 'alex',
                    password: 'test'
                }
            })
            .success(function (res, status, headers) {
                if (res.token != 'undefined'){
                    user.token = res.token;
                    user.login = credentials.login;
                    user.userid = res.userid;
                    user.islogged = true;
                    $cookieStore.put("user", user);
                }
            }).error(function(data, status, headers, config) {
                console.log(data);
            });

这是我的路由器文件中的后端代码:

/************ API ******************/
app.post('/api/login', user.login);

这是我的用户控制器的代码

exports.login = function(req, res) {

console.log(req);

var user = {
    login: req.query.login,
    password: sha1(req.query.password)
};
...
}

我在req.query对象中没有任何内容,否则如果我使用Advanced REST Client插件为chrome做出请求,一切正常。

注意:我正在使用body-parser模块来读取我的请求的参数。

这是github存储库:https://github.com/alex3165/numeractive/tree/dev/node

1 个答案:

答案 0 :(得分:0)

确保您启用了json解析器

var bodyParser = require("body-parser");    
app.use(bodyParser.json());

注意:您必须安装body-parser软件包,只需打开终端(Windows中的命令提示符),将目录更新到项目的根目录并输入以下内容

$ npm install body-parser --save 
相关问题