猫鼬"创造"方法 - 没有回调吗? (使用护照和角度)

时间:2014-12-11 13:15:01

标签: angularjs node.js mongoose passport-local passport.js

我正在使用mongoose在寄存器上创建用户对象。这工作正常,任何错误都按预期返回。

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

我对注册表有以下内容。

register_controller:

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

services.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;
    };
    ...

users.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可以成功{{1} }。

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

谢谢。

1 个答案:

答案 0 :(得分:3)

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

passport' s 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;
};
...

现在您可以根据需要使用创建的用户对象