メテオのユーザー登録時にストライプアカウントを作成し、その目的のために約束したAccounts.onCreateUserを調整したいとします。ユーザーが正しくストライプで作成されたもののAccounts.onCreateUserのメテオ約束
Accounts.onCreateUser((options, user) => {
if (user.services.facebook) {
const { first_name, last_name, email } = user.services.facebook;
user.profile = {}
user.profile.first_name = first_name
user.profile.last_name = last_name
}
else{
user.profile = options.profile
}
user.stripe = {}
return new Promise((resolve,reject) => {
stripe.customers.create({
description: user.profile.first_name + ' ' + user.profile.last_name
},function(err,response){
if (!err) {
user.stripe.id = response.id
resolve(user);
} else {
reject('Could not create user');
}
});
})
});
、流星のmongoデータベース内のユーザー文書は、ユーザーIDが、ありません、他のフィールドが含まれています。
私は約束を間違って使用していますか?どんな助けもありがとう!
Meteor.wrapAysncを指してくれてありがとう。上記のようにコードを実行すると、実行時に次のエラーが発生します。 I20171031-23:52:26.808(-4)?メソッド 'ATCreateUserServer'を呼び出す際の例外TypeError:this.createUrlDataは関数ではありません I20171031-23:52:26.809(-4)? /home/dev/Projects/node_modules/stripe/lib/StripeMethod.js:32:24 I20171031-23:52:26.809(-4)?パッケージ/ meteor.js:212:23 AccountsServer._onCreateUserHook(imports/startup/server/accounts.js:18:20) 私はストリップnpmパッケージを使用しています:https://www.npmjs.com/パッケージ/ストライプ –
私はそれを理解し、stripe.customersに2番目の関数としてstripe.customersを追加する必要がありました。 var createStripeCustomer = Meteor.wrapAsync(stripe.customers.create、stripe.customers) 私に正しい方法を教えてくれてありがとう! :) –
素晴らしい!私はバインディングビットについても言及していたはずです。私はあなたの編集を受け入れました –