我正在使用 Meteor,人们可以通过 Facebook 连接到该网站。我正在使用人员用户名来识别他们。但是,其中一些没有用户名。例如,新用户的用户名为 null。我想做的是,如果这个人有用户名,那么我们使用他们的用户名。如果没有,我想用他们的 Facebook id 作为他们的用户名。问题是,我的 if 条件无法正常工作。如果此人有用户名,则 if 条件认为此人没有。奇怪的是,如果我在 if 条件之前执行用户名的 console.log,它将显示用户名。但是一旦在if中,它认为用户名是空的。这是代码:
Accounts.onCreateUser(function(options, user) {
var fb = user.services.facebook;
var token = user.services.facebook.accessToken;
if (options.profile) {
options.profile.fb_id = fb.id;
options.profile.gender = fb.gender;
options.profile.username = fb.username
console.log( 'username : ' + options.profile.username);
if ( !(options.profile.username === null || options.profile.username ==="null" || options.profile.username === undefined || options.profile.username === "undefined")) {
console.log('noooooooo');
options.profile.username = fb.id;
} else {
console.log('yessssssss');
options.profile.username = fb.username;
}
options.profile.email = fb.email;
options.profile.firstname = fb.first_name;
user.profile = options.profile;
}
sendWelcomeEmail(options.profile.name, options.profile.email);
return user;
});
使用此代码,如果我使用具有用户名的 Facebook 登录。条件将显示 'noooooooo' 但 console.log('username : ' + options.profile.username); 将显示我的用户名。为什么这样做?:l