Angular-Fullstack创建后获取user_id

时间:2017-07-17 10:23:38

标签: javascript angularjs yeoman angular-fullstack

我正在创建用户并需要获取最近创建的用户的ID,但我无法通过回调获取它。这就是我所拥有的:

controller.js:

Auth.createUser({
        name: this.user.name,
        email: this.user.email,
        password: this.user.password,
      }, function (err, user) {
        console.log(user); // Return only the params 'name', 'email, 'password', not the '_id'
}

auth.service.js:

/**
     * Create a new user
     *
     * @param  {Object}   user     - user info
     * @param  {Function} callback - function(error, user)
     * @return {Promise}
     */
    createUser(user, callback) {
      return User.save(user, function(data) {
        $cookies.put('token', data.token);
        currentUser = User.get();
        return safeCb(callback)(null, user);
      }, function(err) {
        Auth.logout();
        return safeCb(callback)(err);
      })
        .$promise;
    },

修改 如果我尝试通过API终点:

$http.post('/api/users/', {
        name: this.usr.name,
        email: this.usr.email,
        password: this.usr.password
      })

我得到了这个对象:

Object { data: Object, status: 200, headers: headersGetter/<(), config: Object, statusText: "OK" }

其中:

data {
    token: eyJhbGciOiJ...Vs3Ng14ycQA
    __proto__: Object 
}

所以无论如何我都无法获得用户信息。

你可以帮我吗?伙计们?提前谢谢。

1 个答案:

答案 0 :(得分:0)

为什么你让你的任务变得更复杂我认为你误解了一些概念。让我试着清除它。

  

好的,所以每当你答应回来时,你都可以选择解决问题   并拒绝这意味着当你解决或拒绝你的时候   可以得到它......或者......接听电话。

Auth.createUser({
        name: this.user.name,
        email: this.user.email,
        password: this.user.password,
      }, function (err, user) {
        console.log(user); // Return only the params 'name', 'email, 'password', not the '_id'
}

您的createUser签名应为

  

function createUser(OBJECT,CALLBACK_FUNCTION)

这里回调函数意味着只要你想要调用函数,如果你调用那个函数,那么只有你可以调用这个函数 - &gt;

  

function(err,user){           的console.log(用户); //只返回params&#39; name&#39;,&#39; email,&#39; password&#39;,而不是&#39; _id&#39; }

这里你没有处理承诺你正在进行一个函数调用,它有回调作为参数,所以你必须写这样的函数..并相应地调用回调

  createUser(user, callback) {
  User.save(user, function(data) {
    $cookies.put('token', data.token);
    currentUser = User.get();
    //return safeCb(callback)(null, user);
    //call that function callback with needed parameter.
    callback(null,user);//giving first para as null as no error
  }, function(err) {
    Auth.logout();
    //return safeCb(callback)(err);
    callback(err);
  })
},

希望这会有所帮助。 如果您还有任何疑问,请告诉我。  编辑

可能是你错过了一个支架..

 Auth.createUser({
         name: this.user.name,
         email: this.user.email,
         password: this.user.password,
       }, function (err, user) {
         console.log(user); // Return only the params 'name', 'email, 'password', not the '_id' 
});