0

我正在使用猫鼬在注册时创建一个用户对象。这工作正常,任何错误都会按预期返回。

但是,我想在用户注册后立即登录(所以如果没有错误,注册会登录)。

我有以下的寄存器。

注册控制器:

$scope.submitRegister = function() {
    AuthenticationService.register(this.details).success(function() {
        $log.debug('/POST to /api/register worked');
    });
}

服务.js:

.service('AuthenticationService', function($http, $timeout, $q, $session, $flash) {
    ...
    this.register = function(details) {
        var register = $http.post('/api/register', details);
        register.success(function() {
            console.log("User added fine"); 
        }).error(function() {
            console.log("error!!!");
        });
        return register;
    };
    ...

用户.js:

app.post('/api/register', authentication.register);

护照的 authenticate.js:

module.exports = {
...
  register: function(req, res){
    var User = require('./controllers/api/login_api');
    User.create({name: req.body.name, email: req.body.email, password: req.body.password}, function(err){
      if (err) {
        console.log(err);
        return;
      }
      console.log("User added"); 
      return res.send(200);
    });
  },
...

错误被很好地报告回来,没有麻烦,但我原以为它会报告其他东西(比如创建的对象?),我可以使用它,这样我的 register_controller 就可以成功function(object) {... login(object);...}

这是 .create 方法的限制还是我遗漏了一些明显的东西?

谢谢你。

4

1 回答 1

4

服务器代码中要更改的两件事:

护照的 authenticate.js:

module.exports = {
...
  register: function(req, res){
    var User = require('./controllers/api/login_api');
    User.create({name: req.body.name, email: req.body.email, password: req.body.password}, function(err, user){
      if (err) {
        console.log(err);
        return;
      }
      console.log("User added"); 
      return res.send(200, user);
    });
  },
...

我已将用户添加到您的回调Mongoose model.create api - 将创建的对象返回给 CB

并改变你的客户的问题:

.service('AuthenticationService', function($http, $timeout, $q, $session, $flash) {
...
this.register = function(details) {
    var register = $http.post('/api/register', details);
    register.success(function(user) {
        console.log(user); 
    }).error(function() {
        console.log("error!!!");
    });
    return register;
};
...

现在您可以随心所欲地使用创建的用户对象

于 2014-12-11T13:38:04.087 回答