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

Can't access to POST parameters using expressJs with AngularJs POST Request

当我使用 angular 执行 post 请求时,我无法访问我的 post 参数,这是我的 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

确保启用 json 解析器

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

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

$ npm install body-parser --save