2016-04-24 8 views
0

私のWebアプリケーションに統合するためにユーザー認証を理解しようとしています。私はhttp://www.sitepoint.com/user-authentication-mean-stack/に従っています。エクスプレスサービスからAPIコントローラへオブジェクトを送信しない

私はwebdevについては初心者ですので、問題を解決するために適切なものを検索することができません。問題は、私のオブジェクトが私のAPIコントローラで受信されていない新しいユーザーを登録しようとするときです。

register.controller.js

(function() { 
    angular 
    .module('misplaced') 
    .controller('registerCtrl', registerCtrl); 

    registerCtrl.$inject = ['$location', 'authentication']; 
    function registerCtrl($location, authentication) { 
    var vm = this; 
    vm.onSubmit = function() { 
    authentication 
     .register(vm.credentials) 
     .error(function(err){ 
     alert(err); 
     }) 
     .then(function(){ 
     $location.path('profile'); 
     }); 
    }; 

authentication.service.js

(function() { 
angular 
.module('misplaced') 
.service('authentication', authentication); 

authentication.$inject = ['$http', '$window']; 
function authentication ($http, $window) { 
    register = function(user) { 
    return $http.post('/api/register', user).success(function(data){ 
    saveToken(data.token); 
    }); 
}; 

authentication.js

module.exports.register = function(req, res) { 

    var user = new User(); 
    user.name = req.body.name; 
    user.email = req.body.email; 
    user.setPassword(req.body.password); 

    user.save(function(err) { 
    var token; 
    token = user.generateJwt(); 
    res.status(200); 
    res.json({ 
     "token" : token 
    }); 
    }); 
}; 

いくつかのconsole.logを通して、私はオブジェクトがregister.controllerからうまく作成され、authentication.serviceに渡されるのを追跡しましたが、console.logにauthentication.jsファイルのオブジェクトが空であるとしようとしました。誰かが私に何が起こっているかも説明するのを助けることができますか?前もって感謝します!

+0

にリクエストボディのプロパティにアクセスできるようになりますか? – mindparse

+0

ああ、私はちょうどあなたの質問を読んだので、私はあなたがあなたのサーバー側のコントローラで 'req.body'をconsole.logにしようとすると思います。 – mindparse

答えて

0

これはExpress構成の問題のように聞こえますが、ExpressではbodyParserモジュールを使用していない可能性があります。

var bodyParser = require('body-parser'); 
var app = express(); 

app.use(bodyParser.json()); 

これはあなたのミドルウェアは、あなたの `authentication.service.js`に成功ハンドラで` data`を記録する場合は、コンソールに表示何をすべきかreq.body

関連する問題