0

当我使用 Angular 进行发布请求时,我无法访问我的发布参数,这是我的 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 对象中没有任何内容,否则如果我使用适用于 chrome 的 Advanced REST Client 插件提出请求,一切正常。

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

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

4

1 回答 1

0

确保启用 json 解析器

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

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

$ npm install body-parser --save 
于 2015-05-02T22:12:03.343 回答