表示不将对象从服务发送到 API 控制器



试图了解用户身份验证以便集成到我的 Web 应用程序中。我一直在遵循 http://www.sitepoint.com/user-authentication-mean-stack/作为指南。

webdev 方面,我是一个新手,所以我很难搜索正确的东西来解决我的问题。问题是当我尝试注册一个新用户时,我的对象没有在我的 api 控制器中收到。

注册控制器.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');
      });
  };

身份验证.服务.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);
   });
 };

身份验证.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
    });
  });
};

通过一些控制台.log我跟踪了该对象从register.controller创建良好并传递给authentication.service,但是当我尝试控制台时.log身份验证.js文件中的对象是空的。有人可以帮助我解释可能发生的事情吗?提前感谢!

听起来像是一个快速配置问题,您可能没有在Express中使用bodyParser模块。

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

这将允许中间件访问请求正文属性req.body

最新更新