【问题标题】:Angular http post data object isn't being seen as an object by the node serverAngular http post 数据对象未被节点服务器视为对象
【发布时间】:2016-03-02 02:37:24
【问题描述】:

我在客户端使用 Angular 来使用用户对象向服务器发送帖子。这个用户对象只是让我在一个对象中传递所有用户信息、用户名、密码、电子邮件、姓名等。不必将每个变量都作为单独的变量传递。

我在 chrome 的开发者工具中看到以下 POST 参数。

{"username":"adfasdfasdf","password":"12123123123"}

但是,在我的服务器端 js 中,数据作为单独的变量传入。而不是同时具有用户名和密码的对象。因此,console.log('userData = ' + userData) 行记录了用户名。 “完成”变量包含密码。

为什么我没有在服务器端获取对象?

客户端 HTML

<form class="form-signin", ng-submit="register()">
  <input type="text" class="form-control" placeholder="Username" ng-model="user.username">
  <input type="password" class="form-control" placeholder="Password" ng-model="user.password">
</form>

客户端 JS

    var pollControllers = angular.module('pollControllers', []);
pollControllers.controller('RegisterCtrl', ['$scope', '$http', '$location',
    function($scope, $http, $location) {
            // This object is filled by the form
            $scope.user = {};

            $scope.register = function() {
                $http.post('http://xx.xx.xxx.xxx:3000/register', $scope.user);
            }
    }
]);

服务器 JS

module.exports = function(passport) {
  function(userData, done) {
    console.log('userData = ' + userData); // !this outputs the username!
    console.log('done = ' + done); // !this outputs the password!
  }
}

【问题讨论】:

  • 我会看一下护照代码 - 根据我的经验,正确设置很繁琐

标签: javascript angularjs node.js express passport.js


【解决方案1】:

Passport local 获取第一个参数作为用户名,第二个参数作为密码,第三个作为回调。

passport.use(new LocalStrategy(
  function(username, password, done) {
    User.findOne({ username: username }, function (err, user) {
      if (err) { return done(err); }
      if (!user) { return done(null, false); }
      if (!user.verifyPassword(password)) { return done(null, false); }
      return done(null, user);
    });
  }
));

Passport Local Github Page

【讨论】:

  • 好的,因此 passport 期望这些参数用于此策略。这就是我最初所做的。但我想传递用户输入的其他信息,如电子邮件、名字、姓氏等。这就是我试图传递对象的原因。所以我不必为每个附加字段创建一个新参数。
猜你喜欢
  • 2020-03-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多