簡體   English   中英

Angular-Fullstack創建后獲取user_id

[英]Angular-Fullstack get user_id after create it

我正在創建用戶,需要獲取最近創建的用戶的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 
}

所以我還是無法獲得用戶信息。

你們能幫我嗎? 提前致謝。

為什么您使您的任務變得更復雜,我認為您誤解了一些概念。 讓我嘗試清除它。

好的,所以只要您答應返回就可以得到“解決並拒絕”選項,這意味着當調用“解決”或“拒絕”時,您可以在...或... catch調用中獲取它。

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簽名應為

函數createUser(OBJECT,CALLBACK_FUNCTION)

這里的回調函數意味着將在需要時調用該函數,如果您調用該函數,則只有您可以調用此函數->

功能(錯誤,用戶){console.log(user); //僅返回參數'name','email,'password',而不返回'_id'}

在這里,您沒有處理諾言,您正在進行將回調作為參數的函數調用,因此您必須像這樣編寫該函數..並相應地調用回調

  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' 
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM