[英]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.