【问题标题】:Express not sending object from Service to API controllerExpress 不将对象从服务发送到 API 控制器
【发布时间】:2016-04-24 16:28:26
【问题描述】:

试图了解用户身份验证以便集成到我的网络应用程序中。我一直关注http://www.sitepoint.com/user-authentication-mean-stack/ 作为指导。

我是 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 文件中的对象时,它是空的。有人可以帮我解释一下可能发生的事情吗?提前致谢!

【问题讨论】:

  • 如果您在authentication.service.js 的成功处理程序中登录data,您会在控制台中看到什么?
  • 啊,好吧,我刚刚重新阅读了您的问题,所以我猜如果您尝试在服务器端控制器中控制台记录 req.body,它会返回为 null?

标签: javascript angularjs node.js mean-stack


【解决方案1】:

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

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

app.use(bodyParser.json());

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-02
    • 1970-01-01
    • 1970-01-01
    • 2016-01-09
    • 2021-09-15
    • 2019-09-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多